기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
지정된 볼륨 구성에서 특정 I/O 특성은 EBS 볼륨의 성능 동작을 구동합니다.
-
SSD 지원 볼륨, 범용 SSD(
gp2
및gp3
) 및 프로비저닝된 IOPS SSD(io1
및io2
)는 I/O 작업이 임의이든 순차적이든 일관된 성능을 제공합니다. -
HDD 지원 볼륨, 처리량 최적화 HDD(
st1
) 및 콜드 HDD(sc1
)는 I/O 작업이 크고 순차적인 경우에만 최적의 성능을 제공합니다.
SSD 및 HDD 볼륨이 애플리케이션에서 어떻게 작동하는지 이해하려면 볼륨 수요와 가용 IOPS 수량, I/O 작업을 완료하는 데 소요되는 시간, 볼륨의 처리량 제한 사이의 관계를 아는 것이 중요합니다.
IOPS
IOPS는 초당 입력/출력 작업을 나타내는 측정 단위입니다. 작업은 KiB로 측정되며 볼륨 유형에서 단일 I/O로 계산되는 데이터의 최대 양은 기반 드라이브 기술에 따라 결정됩니다. I/O 크기는 SSD 볼륨의 경우 256KiB로, HDD 볼륨의 경우 1,024KiB로 제한되는데 SSD 볼륨은 소량 또는 임의 I/O를 HDD 볼륨보다 훨씬 더 효율적으로 처리하기 때문입니다.
소량의 I/O 작업이 물리적으로 연속되는 경우 Amazon EBS는 최대 I/O 크기까지 단일 I/O 작업으로 병합을 시도합니다. 마찬가지로, I/O 작업이 최대 I/O 크기보다 큰 경우 Amazon EBS는 I/O 작업을 더 작은 I/O 작업으로 분할을 시도합니다. 다음 표에 몇 가지 예가 나와 있습니다.
볼륨 유형 | 최대 I/O 크기 | 애플리케이션의 I/O 작업 | IOPS 수 | Notes |
---|---|---|---|---|
SSD | 256KiB | 1 x 1024KiB I/O 작업 | 4(1,024÷256=4) | Amazon EBS는 1,024KiB 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 IOPS를 제공하는 io1
또는 io2
볼륨을 프로비저닝하거나 gp2
볼륨의 크기를 1,000GiB로 지정하거나 gp3
볼륨을 사용하는 방법으로) 3,000 IOPS를 지원하는 SSD 지원 볼륨을 생성하고 충분한 대역폭을 제공할 수 있는 EBS 최적화 인스턴스에 연결할 경우, 초당 최대 3,000 I/O 데이터 전송이 가능하며 처리량은 I/O 크기에 따라 결정됩니다.
볼륨 대기열 길이 및 지연 시간
볼륨 대기열 길이는 디바이스에 대해 보류 중인 I/O 요청 수입니다. 지연 시간은 I/O 작업의 실제 종단 간 클라이언트 시간입니다. 다시 말해 EBS로 I/O를 전송한 후 EBS로부터 I/O 읽기 또는 쓰기가 완료되었다는 승인을 받기까지 소요된 시간입니다. 대기열 길이를 I/O 크기 및 지연 시간에 따라 정확히 보정하여, 게스트 운영 체제나 EBS로 연결되는 네트워크 링크에 병목 현상이 발생하지 않도록 해야 합니다.
최적의 대기열 길이는 워크로드마다 다른데, 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
볼륨에는 3,000 IOPS 제한과 250MiB/s의 볼륨 처리량 제한이 있습니다. 256KiB I/O 크기를 사용하는 경우, 볼륨은 1000 IOPS에서 처리량 제한에 도달합니다(1000 x 256KiB = 250MiB). I/O 크기가 작다면(예: 16KiB), 처리량이 250MiB/s에 훨씬 못 미치기 때문에 동일한 볼륨이 3,000 IOPS를 유지할 수 있습니다. (이 예제는 볼륨의 I/O가 인스턴스의 처리량 제한에 도달하지 않는다고 가정합니다.) 각 EBS 볼륨 유형의 처리량 제한에 대한 자세한 내용은 Amazon EBS 볼륨 유형 섹션을 참조하세요.
소용량 I/O 작업의 경우, 인스턴스 내에서 측정했을 때 프로비저닝된 IOPS 값보다 큰 값을 관찰할 수 있습니다. 인스턴스 운영 체제가 소용량 I/O 작업을 Amazon EBS로 전달하기 전 대용량 작업에 병합할 때 이런 결과가 발생합니다.
워크로드가 HDD 지원 st1
및 sc1
볼륨의 순차 I/O를 사용한다면 인스턴스 내에서 측정했을 때 예상보다 높은 IOPS를 관찰할 수 있습니다. 인스턴스 운영 체제가 순차 I/O를 병합하고 1,024KiB 크기 단위로 계산되는 경우에 이런 결과가 발생합니다. 워크로드가 소용량 또는 랜덤 I/O를 사용하는 경우 예상보다 적은 처리량을 관찰할 수 있습니다. 이는 각각의 비순차적인 랜덤 I/O를 총 IOPS 계산에 적용하기 때문이며, 이로 인해 예상보다 일찍 볼륨의 IOPS 제한에 도달할 수 있습니다.
EBS 볼륨 유형이 무엇이든 현재 구성에서 기대한 IOPS 또는 처리량을 달성하지 못할 경우에는 EC2 인스턴스 대역폭이 제한 요소가 아닌지 확인하세요. 최적의 성능을 위해 항상 현재 세대 EBS 최적화 인스턴스(또는 10Gb/s 네트워크 연결을 포함한 인스턴스)를 사용해야 합니다. EBS 볼륨에 충분한 I/O를 구동하고 있지 않은 경우에도 IOPS가 예상과 다를 수 있습니다.
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 지연 시간 모니터링
VolumeAvgReadLatency
및 VolumeAvgWriteLatency
지표를 각각 사용하여 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)
또한 VolumeIOPSExceededCheck
및 VolumeThroughputExceededCheck
지표를 모니터링하여 워크로드가 지정된 1분 동안 볼륨의 프로비저닝된 성능보다 큰 IOPS 또는 처리량을 지속적으로 유도하려고 시도했는지 확인할 수 있습니다. 구동 IOPS가 볼륨의 프로비저닝된 IOPS 성능을 지속적으로 초과하는 경우 지표는 VolumeIOPSExceededCheck
를 반환합니다1
. 구동 처리량이 볼륨의 프로비저닝된 처리량 성능을 지속적으로 초과하는 경우 지표는 VolumeThroughputExceededCheck
를 반환합니다1
. 구동 IOPS 및 처리량이 볼륨의 프로비저닝된 성능 내에 있는 경우 지표는를 반환합니다0
.
IOPS가 볼륨에서 제공할 수 있는 수보다 많이 애플리케이션에 필요한 경우 다음 중 하나를 사용하는 것을 고려해야 합니다.
-
필수 지연 시간 달성에 충분한 IOPS가 프로비저닝되는
gp3
,io2
또는io1
볼륨 -
충분한 기준 IOPS 성능을 제공하는 더 큰
gp2
볼륨
HDD 지원 st1
및 sc1
볼륨은 1,024KiB 최대 I/O 크기를 활용하는 워크로드에서 가장 잘 작동하도록 설계되었습니다. 볼륨의 평균 I/O 크기를 결정하려면를 VolumeWriteBytes
로 나눕니다VolumeWriteOps
. 읽기 작업에도 같은 계산 방법이 적용됩니다. 평균 I/O 크기는 64KiB 미만이며, st1
또는 sc1
볼륨으로 보내는 I/O 작업의 크기가 큰 경우 성능을 개선해야 합니다.
gp2
, st1
및 sc1
볼륨에 대한 버스트 버킷 밸런스 모니터링
BurstBalance
는 gp2
, st1
, sc1
볼륨에 대한 버스트 버킷 잔고를 남은 잔고에 대한 비유로 표시합니다. 버스트 버킷이 모두 사용되면 볼륨 I/O(gp2
볼륨용) 또는 볼륨 처리량(st1
및 sc1
볼륨용)이 기준 수준으로 스로틀링됩니다. BurstBalance
값을 확인하여 이런 이유로 볼륨이 조절되는지 판단합니다. 사용 가능한 Amazon EBS 지표의 전체 목록은 Amazon EBS에 대한 Amazon CloudWatch 지표 및 Nitro 기반 인스턴스용 Amazon EBS 지표를 참조하세요.
실시간 I/O 성능 통계 모니터링
Nitro 기반 Amazon EC2 인스턴스에 연결된 Amazon EBS 볼륨에 대한 실시간 세부 성능 통계에 액세스할 수 있습니다.
이러한 통계를 결합하여 평균 지연 시간과 IOPS를 도출하거나 I/O 작업이 완료되고 있는지 확인할 수 있습니다. 애플리케이션이 EBS 볼륨 또는 연결된 인스턴스의 프로비저닝된 IOPS 또는 처리량 제한을 초과한 총 시간을 볼 수도 있습니다. 시간 경과에 따른 이러한 통계 증가를 추적하여 프로비저닝된 IOPS 또는 처리량 제한을 늘려 애플리케이션의 성능을 최적화해야 하는지 여부를 식별할 수 있습니다. 세부 성능 통계에는 지연 시간 대역 내에서 완료된 총 I/O 작업 수를 추적하여 I/O 지연 시간을 분산하는 읽기 및 쓰기 I/O 작업에 대한 히스토그램도 포함됩니다.
자세한 내용은 Amazon EBS 세부 성능 통계 단원을 참조하십시오.
관련 리소스
Amazon EBS I/O 특성에 관한 자세한 내용은 Amazon EBS: Designing for Performance