2017-04-14 3 views
1

gp2 볼륨의 EBS 작동 방식에 대한 리소스를 알려주십시오. 내가 이해할 수있는 방법은 서비스이지만 실제로는 SSD 드라이브 어레이를 이중화 방식으로 인스턴스에 연결하는 것입니다. 실제로 물리적으로 연결하는 방법은 무엇입니까? 이 문서는 데이터가 16KB 또는 256KB 블록으로 전송된다는 사실을 언급하고 있지만 더 이상 찾을 수 없습니다. 예를 들어, Linux에서 내 파티션이 4KB 블록으로 포맷 된 경우 EBS이 16KB 블록으로 디스크에서 데이터를주고 받는다는 것을 의미합니까? 그렇다면 16KB 블록으로 파티션을 포맷하는 것이 타당하지 않을뿐만 아니라 업스트림에 최적화 하시겠습니까? 매우 무작위로 4k 작업 집합이있는 경우 동일한 양의 16KB 블록 요청이 트리거됩니까? 이미 테스트를 마친 사람이 있다면 ... 정말 듣고 싶습니다.AWS EBS 블록 크기

답변

2

실제 물리적 연결 방법은 AWS 소프트웨어 정의 이더넷 LAN을 통해 이루어집니다. EBS는 본질적으로 SAN입니다. 볼륨은 물리적으로 인스턴스에 연결되어 있지는 않지만 물리적으로 동일한 가용성 영역 내에 있으며 액세스는 네트워크를 통해 이루어집니다.

인스턴스가 "EBS Optimized"인 경우 인스턴스와 EBS 간의 통신을위한 별도의 이더넷 대역폭 할당이 있습니다. 그렇지 않으면 인스턴스의 모든 IP 트래픽을 처리하는 동일한 이더넷 연결이 EBS에서도 사용됩니다.

EBS gp2 볼륨 뒤의 SSD는 페이지 정렬 4KiB입니다.

AWS re:Invent 2015 | (STG403) Amazon EBS: Designing for Performance 약 24:15 시작을 참조하십시오.

AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)에서 설명한 것처럼 EBS 볼륨은 물리적 볼륨이 아닙니다. 그들은 당신에게 SSD 드라이브를 건네주지 않습니다. EBS 볼륨은 가용성 영역 전체에 걸쳐 수많은 분산 장치에 걸쳐있는 논리적 볼륨입니다. 장치의 블록도 가용성 영역 내의 EBS에서 두 번째 장치로 복제됩니다.

이러한 요소는 실제 SSD의 성능이 EBS의 성능에 특히 중요한 요인이 아니라는 것을 분명히합니다. EBS는 모든 외모에 따라 볼륨에 대해 지불하는 비용에 비례하여 리소스를 할당합니다 ... 물론 볼륨의 크기뿐만 아니라 선택한 기능 세트 (볼륨 유형)에 직접 비례합니다.

16KiB는 EBS가 gp2의 성능 벤치 마크를 설정하는 데 사용하는 I/O의 공칭 크기입니다. EBS가 미디어 장치 자체에 대해 볼륨에 할당하는 처리 리소스와 관련이있는 것으로 보입니다. EBS 볼륨은 자체 "리소스"가있는 저장소 클러스터에 있습니다. (CPU, 메모리, 네트워크 대역폭 등) 및 16KiB는 EBS 인프라의 일종의 리소스 할당과 관련된 공칭 값인 것 같습니다.

sc1 및 st1 볼륨은 매우 다른 공칭 I/O 크기 (1 MiB)를 사용합니다. 분명히 물리적 저장 장치에 관련된 것은 아니기 때문에 gp2 (및 io1)의 16KiB 번호라는 결론을 내릴 수 있습니다.

GP2 볼륨 여러 한계 최저까지 수행 할 수

  • 160 MiB 크기/초, 접속 인스턴스의 유형에 따라 ‡
  • 부피 가능한 순시 IOPS의 현재 수, 어느 인
  • 3 IOPS 당 부피의 크기에 관계없이
    • 100 IOPS 최고 지브 볼륨 크기 프로비저닝
    • IOPS에 관계없이 3,000 IOPS
  • 만 볼륨 당 IOPS에 덮인, 토큰 버킷에 함께 볼륨이 얼마나 큰

‡ 작은 인스턴스 유형 160MiB/초를 제공 할 수 없습니다를 사용할 수 학점 어쨌든, 네트워크 대역폭의. 예를 들어, r3.xlarge는 네트워크 대역폭이 기가비트 (500 Mbps)의 절반 밖에되지 않으므로 EBS에 대한 총 트래픽을 약 62.5 MiB/초로 제한하므로 EBS 볼륨에 더 많은 처리량을 넣을 수 없습니다 이 유형의 인스턴스에서. 매우 큰 인스턴스 나 아주 작은 볼륨을 사용하지 않는 한 EBS 성능에 대한 가장 큰 제약은 EBS의 한계가 아니라 인스턴스의 한계가 될 것입니다.

위의 목록에서 첫 번째 (최저) 임계 값으로 제한을 받으면 공칭 16KB I/O 크기의 영향은 다음과 같습니다. I/O가 16KB보다 작 으면 최대 IOPS는 그들이 큰 경우 증가하고, 최대 가능한 IOPS이 저하 될 수 있습니다 :

  • 4KiB의 I/O 크기가 16KiB를 설립 속도 제한 목적을 위해 I/O의 공칭 크기 때문에 성능이 향상되지 않습니다, 그러나
  • I/O 크기가 4KiB 인 경우 EBS의 회계 목적을 위해 내부적으로 결합되므로 순차 I/O로 성능을 크게 떨어 뜨리지 않을 수 있습니다. 따라서 인스턴스가 4 KiB 순차 I/O 요청을 4 × 개 생성하는 경우 EBS는 I/O와 마찬가지로 1 I/O로 계산합니다.
  • 4KiB의 I/O 크기와 극히 무작위적인 I/O는 실제로 존재하지 않습니다. 이론적으로 이론적으로 16KiB의 엄청난 I/O와 동일한 수의 성능을 보이지는 않지만 본능과 경험은 극히 드문 경우를 제외하고는 학문과 이론 영역에서이 한계를 말해줍니다. 작은 글씨는 같은 수의 IOPS를 사용하지만 전선을 통해 더 많은 불필요한 데이터를 전송하기 때문에 도움이 될 수도 있습니다.
  • I/O가 16KiB보다 큰 경우 디스크 대역폭이 IOPS 임계 값에 도달하기 전에 160MiB/s 임계 값에 도달하면 최대 IOPS가 감소합니다.

최종 생각에서 EBS는 부하가 가장 잘 걸립니다. 즉, 일련의 임의 I/O를 만드는 단일 스레드는 EBS 볼륨의 큐를 요청으로 채우지 않습니다. 그렇지 않은 경우 최대한의 성능을 볼 수 없습니다.

EBS 성능에 대한 자세한 내용은 Amazon EBS Volume Performance on Linux Instances을 참조하십시오.

+0

감사합니다. COD 내 로컬 NVM SSD에 gp2가 너무 인상적이지 않습니다. 내 SSD는 ec2에서 1,000k 및 160 MiB/초에 비해 순차적으로 90000 IOPS 및 2GB/s를 처리 할 수 ​​있습니다. 또한 블록 크기는 작은 랜덤 읽기의 효율성이 떨어집니다 ... –