Amazon EBS I/O 특성 및 모니터링 - Amazon EBS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EBS I/O 특성 및 모니터링

지정된 볼륨 구성에서 특정 I/O 특성은 EBS 볼륨의 성능 동작을 구동합니다.

  • SSD 기반 볼륨, 범용 SSD(gp2gp3) 및 프로비저닝된 IOPS SSD(io1io2)는 I/O 작업이 무작위이든 순차이든 일관된 성능을 제공합니다.

  • HDD 기반 볼륨, 처리량 최적화 HDD(st1) 및 콜드 HDD(sc1)는 I/O 작업이 크고 순차적인 경우에만 최적의 성능을 제공합니다.

애플리케이션에서 SSD 및 HDD 볼륨의 성능을 이해하려면 볼륨에 대한 수요, 사용 가능한 IOPS의 양, I/O 작업이 완료되는 데 걸리는 시간, 볼륨의 처리량 제한 간의 연결을 알아야 합니다.

IOPS

IOPS는 input/output operations per second. The operations are measured in KiB, and the underlying drive technology determines the maximum amount of data that a volume type counts as a single I/O. I/O size is capped at 256 KiB for SSD volumes and 1,024 KiB for HDD volumes because SSD volumes handle small or random I/O 볼륨보다 훨씬 더 효율적으로 HDD를 나타내는 측정 단위입니다.

작은 I/O 작업이 물리적으로 순차적인 경우 Amazon EBS는 최대 I/O 크기까지 단일 I/O 작업으로 병합하려고 시도합니다. 마찬가지로 I/O 작업이 최대 I/O 크기보다 크면 Amazon EBS는 이를 더 작은 I/O 작업으로 분할하려고 시도합니다. 다음 표에 몇 가지 예가 나와 있습니다.

볼륨 유형 최대 I/O 크기 애플리케이션의 I/O 작업 IOPS 수 참고
SSD 256KiB 1 x 1024KiB I/O 작업 4(1,024÷256=4) Amazon EBS는 1,024 I/O 작업을 4개의 작은 256KiB 작업으로 분할합니다.
8 x 순차적 32KiB I/O 작업 1(8x32=256) Amazon EBS는 8개의 순차적 32KiB I/O 작업을 단일 256KiB 작업으로 병합합니다.
8개의 임의 32KiB I/O 작업 8 Amazon EBS는 무작위 I/O 작업을 별도로 계산합니다.
HDD 1,024KiB 1 x 1024KiB I/O 작업 1 I/O 작업이 이미 최대 I/O 크기와 같습니다. 병합되거나 분할되지 않습니다.
8 x 순차적 128KiB I/O 작업 1(8x128=1,024) Amazon EBS는 8개의 순차적 128KiB I/O 작업을 단일 1,024KiB I/O 작업으로 병합합니다.
8개의 임의 32KiB I/O 작업 8 Amazon EBS는 무작위 I/O 작업을 별도로 계산합니다.

따라서 3,000 SSD를 지원하는 IOPS 기반 볼륨을 생성하고(3,000 IOPS로 io1 또는 io2 볼륨을 프로비저닝하거나, gp2 볼륨을 1,000GiB로 조정하거나, gp3 볼륨을 사용하여) 충분한 대역폭을 제공할 수 있는 EBS 최적화 인스턴스에 연결하면 I/O 크기에 따라 처리량이 결정되는 초당 최대 3,000I/O의 데이터를 전송할 수 있습니다.

볼륨 대기열 길이 및 지연 시간

볼륨 대기열 길이는 디바이스에 대해 보류 중인 I/O 요청 수입니다. 지연 시간은 I/O 작업의 true end-to-end 클라이언트 시간입니다. 즉, I/O를 EBS로 보내는 것과 I/O 읽기 또는 쓰기가 완료되었다는 EBS의 확인을 받는 것 사이의 경과 시간입니다. 게스트 운영 체제 또는 EBS에 대한 네트워크 링크에서 병목 현상이 발생하지 않도록 대기열 길이를 I/O 크기 및 지연 시간으로 올바르게 보정해야 합니다.

최적의 대기열 길이는 특정 애플리케이션의 IOPS 및 지연 시간에 대한 민감도에 따라 워크로드마다 다릅니다. 워크로드가 EBS 볼륨에 사용할 수 있는 성능을 완전히 사용하기에 충분한 I/O 요청을 전달하지 못하는 경우 볼륨이 프로비저닝한 IOPS 또는 처리량을 전달하지 못할 수 있습니다.

트랜잭션 집약적 애플리케이션은 I/O 지연 시간 증가에 민감하며 SSD 기반 볼륨에 적합합니다. 대기열 길이가 짧고 볼륨에 사용할 수 있는 IOPS 수가 많으면 지연 시간을 줄이면서 높은 IOPS를 유지할 수 있습니다. 사용 가능한 것보다 볼륨에 IOPS를 더 많이 지속적으로 구동하면 I/O 지연 시간이 증가할 수 있습니다.

처리량 집약적인 애플리케이션은 I/O 지연 시간 증가에 덜 민감하며 HDD 기반 볼륨에 적합합니다. 대규모 순차 I/O를 수행할 때 높은 대기열 길이를 유지하여 HDD 지원 볼륨에 대한 높은 처리량을 유지할 수 있습니다.

I/O 크기 및 볼륨 처리량 제한이 없음

SSD 기반 볼륨의 경우 I/O 크기가 매우 크면 볼륨의 처리량 한도에 도달하기 때문에 프로비저닝된 것보다 적은 수의 IOPS가 발생할 수 있습니다. 예를 들어 버스트 크레딧을 사용할 수 있는 1,000GiB 미만의 gp2 볼륨은 IOPS 한도가 3,000이고 볼륨 처리량 한도가 250 MiB/s. If you are using a 256 KiB I/O size, your volume reaches its throughput limit at 1000 IOPS (1000 x 256 KiB = 250 MiB). For smaller I/O sizes (such as 16 KiB), this same volume can sustain 3,000 IOPS because the throughput is well below 250 MiB/s. (These examples assume that your volume's I/O인 경우 인스턴스의 처리량 한도에 도달하지 않습니다.) 각 EBS 볼륨 유형의 처리량 제한에 대한 자세한 내용은 섹션을 참조하세요Amazon EBS 볼륨 유형.

더 작은 I/O 작업의 경우 인스턴스 내부에서 측정된 higher-than-provisioned IOPS 값이 표시될 수 있습니다. 이는 인스턴스 운영 체제가 작은 I/O 작업을 Amazon EBS로 전달하기 전에 더 큰 작업으로 병합할 때 발생합니다.

워크로드가 HDD 지원 st1sc1 볼륨에서 순차적 I/O를 사용하는 경우 인스턴스 내부에서 IOPS 측정된 예상보다 많은 Word 수가 발생할 수 있습니다. 인스턴스 운영 체제가 순차 I/O를 병합하고 1,024KiB 크기 단위로 계산되는 경우에 이런 결과가 발생합니다. 워크로드가 소용량 또는 랜덤 I/O를 사용하는 경우 예상보다 적은 처리량을 관찰할 수 있습니다. 이는 각 무작위 비순차 I/O를 총 IOPS 수에 계산하기 때문입니다. 이로 인해 예상보다 더 빨리 볼륨의 IOPS 한도에 도달할 수 있습니다.

EBS 볼륨 유형이 무엇이든 구성에서 예상되는 IOPS 또는 처리량이 발생하지 않는 경우 EC2 인스턴스 대역폭이 제한 요소가 아닌지 확인하세요. 항상 최신 세대의 EBS 최적화 인스턴스(또는 EBS 볼륨에 10 Gb/s network connectivity) for optimal performance. Another possible cause for not experiencing the expected IOPS is that you are not driving enough I/O가 포함된 인스턴스)를 사용해야 합니다.

CloudWatch를 사용하여 I/O 특성 모니터링

각 볼륨의 CloudWatch 볼륨 지표를 사용하여 이러한 I/O 특성을 모니터링할 수 있습니다.

멈춘 I/O 모니터링

VolumeStalledIOCheck는 EBS 볼륨의 상태를 모니터링하여 볼륨이 손상된 시기를 결정합니다. 지표는 EBS 볼륨이 I/O 작업을 완료할 수 있는지 여부에 따라 0 (합격) 또는 1 (불합격) 상태를 반환하는 이진 값입니다.

지표가 실패하면 VolumeStalledIOCheck AWS 에서 문제를 해결할 때까지 기다리거나 영향을 받는 볼륨을 교체하거나 볼륨이 연결된 인스턴스를 중지하고 다시 시작하는 등의 작업을 수행할 수 있습니다. 대부분의 경우이 지표가 실패하면 EBS는 몇 분 이내에 볼륨을 자동으로 진단하고 복구합니다. 의 I/O 일시 중지 작업을 사용하여 제어된 실험 AWS Fault Injection Service 을 실행하여이 지표를 기반으로 아키텍처와 모니터링을 테스트하여 스토리지 장애에 대한 복원력을 개선할 수 있습니다.

볼륨의 I/O 지연 시간 모니터링

VolumeAvgReadLatencyVolumeAvgWiteLatency 지표를 각각 사용하여 Amazon EBS 볼륨의 읽기 및 쓰기 작업에 대한 평균 지연 시간을 모니터링할 수 있습니다.

I/O 지연 시간이 필요한 것보다 높으면 애플리케이션이 볼륨에 프로비저닝한 것보다 더 많은 IOPS 또는 처리량을 구동하려고 시도하지 않는지 확인하세요. 다음 공식을 사용하여 특정 기간 동안 볼륨으로 구동되는 평균 IOPS 및 처리량을 계산한 다음 이를 볼륨의 프로비저닝된 IOPS 및 처리량과 비교합니다.

Sum(VolumeReadOps) + Sum(VolumeWriteOps) Estimated average IOPS in ops/s = ---------------------------------------- Period - Sum(VolumeIdleTime)
(Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / 1024 Estimated average throughput in KiB/s = ----------------------------------------------------- Period - Sum(VolumeIdleTime)

또한 VolumeIOPSExceededCheckVolumeThroughputExceededCheck 지표를 모니터링하여 워크로드가 지정된 1분 동안 볼륨의 프로비저닝된 성능보다 더 큰 IOPS 또는 처리량을 지속적으로 유도하려고 시도했는지 여부를 확인할 수 있습니다. 피동 IOPS가 볼륨의 프로비저닝된 IOPS 성능을 지속적으로 초과하는 경우 지표는 VolumeIOPSExceededCheck를 반환합니다1. 구동된 처리량이 볼륨의 프로비저닝된 처리량 성능을 지속적으로 초과하는 경우 지표는 VolumeThroughputExceededCheck를 반환합니다1. 구동 IOPS 및 처리량이 볼륨의 프로비저닝된 성능 내에 있는 경우 지표는를 반환합니다0.

애플리케이션에 볼륨에서 제공할 수 있는 것보다 많은 수의 IOPS가 필요한 경우 다음 중 하나를 사용하는 것이 좋습니다.

  • 필요한 지연 시간을 달성하기에 충분한 IOPS로 프로비저닝된 gp3io2, 또는 io1 볼륨

  • 충분한 기준 IOPS 성능을 제공하는 더 큰 gp2 볼륨

HDD 기반 st1sc1 볼륨은 최대 I/O 크기 1,024KiB를 활용하는 워크로드에서 가장 잘 작동하도록 설계되었습니다. 볼륨의 평균 I/O 크기를 확인하려면 VolumeWriteBytes로 나눕니다VolumeWriteOps. 읽기 작업에도 같은 계산 방법이 적용됩니다. 평균 I/O 크기는 64KiB 미만이며, st1 또는 sc1 볼륨으로 보내는 I/O 작업의 크기가 큰 경우 성능을 개선해야 합니다.

gp2, st1sc1 볼륨에 대한 버스트 버킷 밸런스 모니터링

BurstBalancegp2, st1, sc1 볼륨에 대한 버스트 버킷 잔고를 남은 잔고에 대한 비유로 표시합니다. 버스트 버킷이 모두 사용되면 볼륨 I/O(gp2 볼륨용) 또는 볼륨 처리량(st1sc1 볼륨용)이 기준 수준으로 스로틀링됩니다. BurstBalance 값을 확인하여 이런 이유로 볼륨이 조절되는지 판단합니다. 사용 가능한 Amazon EBS 지표의 전체 목록은 및 Nitro 기반 인스턴스에 대한 Amazon EBS에 대한 Amazon CloudWatch 지표 Amazon Word 지표를 참조하세요. EBS

실시간 I/O 성능 통계 모니터링

Nitro 기반 Amazon EBS 인스턴스에 연결된 Amazon EC2 볼륨에 대한 실시간 세부 성능 통계에 액세스할 수 있습니다.

이러한 통계를 결합하여 평균 지연 시간과 IOPS를 도출하거나 I/O 작업이 완료되고 있는지 확인할 수 있습니다. 애플리케이션이 EBS 볼륨 또는 연결된 인스턴스의 프로비저닝된 IOPS 또는 처리량 제한을 초과한 총 시간을 볼 수도 있습니다. 시간이 지남에 따라 이러한 통계의 증가를 추적하여 프로비저닝된 IOPS 또는 처리량 제한을 늘려 애플리케이션 성능을 최적화해야 하는지 여부를 식별할 수 있습니다. 자세한 성능 통계에는 읽기 및 쓰기 I/O 작업에 대한 히스토그램도 포함되며,이 히스토그램은 지연 시간 밴드 내에서 완료된 I/O 작업의 총 수를 추적하여 I/O 지연 시간을 분산합니다.

자세한 내용은 Amazon EBS 세부 성능 통계 단원을 참조하십시오.

관련 리소스

Amazon EBS I/O 특성에 대한 자세한 내용은 re:Invent 프레젠테이션: Amazon EBS: Designing for Performance를 참조하세요.