Amazon Elastic Block Store(Amazon EBS) 볼륨이 Amazon CloudWatch의 처리량 또는 초당 입출력 작업량(IOPS) 한도에 도달하지 않았습니다. 그러나 볼륨이 제한되고 지연 시간과 대기열의 길이가 길어졌습니다.
해결 방법
CloudWatch 지표는 모든 Amazon EBS 볼륨 유형의 IOPS와 처리량을 모니터링하는 데 도움이 됩니다. CloudWatch 지표는 1분 간격으로 샘플을 수집합니다. 하지만 I/O 작업은 밀리초 속도로 수행됩니다. 수집 간격보다 짧은 시간 동안 볼륨에서 IOPS 또는 처리량이 급증하면 CloudWatch는 이러한 버스트를 캡처하지 못합니다. 이 오류는 지표 모니터링이 초당 속도로 발생하기 때문에 발생합니다.
CloudWatch 지표를 사용하여 발생 가능한 마이크로 버스트 확인
VolumeIdleTime 지표 확인
VolumeIdleTime 지표 그래프는 지정된 기간 동안 읽기 또는 쓰기 작업이 제출되지 않은 시간(초)을 보여줍니다. VolumeIdleTime이 높으면 볼륨이 대부분의 기간 동안 유휴 상태로 유지된 것입니다. 동일한 기간 동안 IOPS 또는 처리량이 충분히 높았다면 볼륨에서 마이크로 버스트가 발생한 것입니다.
EBS 볼륨이 수신한 평균 처리량과 평균 IOPS 계산
다음 공식을 사용하여 EBS 볼륨의 평균 처리량을 계산합니다.
예상 평균 처리량(Bps) = (합계(VolumeReadBytes) + 합계(VolumeWriteBytes)) / (기간 - 합계(VolumeIdleTime))
다음 공식을 사용하여 EBS 볼륨의 평균 IOPS를 계산합니다.
예상 평균 IOPS(Ops) = (합계(VolumeReadOps) + 합계(VolumeWriteOps)) / (기간 - 합계(VolumeIdleTime))
CloudWatch를 사용하여 마이크로 버스트 이벤트 가져오기
다음 단계를 완료하십시오.
- CloudWatch 콘솔을 엽니다.
- 모든 지표를 선택합니다.
- 볼륨 ID를 사용하여 마이크로 버스팅이 발생한 볼륨을 검색합니다.
- EBS를 선택한 다음 볼륨당 지표를 선택합니다.
- 처리량 지표를 보려면 VolumeReadBytes, VolumeWriteBytes, VolumeIdleTime을 선택합니다.
- 그래프로 표시된 지표를 선택합니다.
- 통계에서 합계를 선택하고 기간에 1분을 선택합니다.
- 수학 추가에서 빈 표현식으로 시작을 선택합니다.
- 표현식 세부 정보에서는 VolumeReadBytes, VolumeWriteBytes, VolumeIdleBytes에 할당된 그래프 ID를 사용합니다. 이렇게 하면 예상 평균 처리량(Bps) 공식이 작성됩니다.
예를 들어 (m1+m2)/(60-m3)과 같이 입력할 수 있습니다.
그래프에 볼륨의 최대 처리량보다 큰 값이 표시되면 워크로드가 마이크로 버스팅인 것입니다.
I/O 작업으로 인해 마이크로 버스팅이 발생했는지 확인하려면 이전 단계를 수행하십시오. 그런 다음 5단계에서 VolumeReadBytes, VolumeWriteBytes, VolumeIdleTime을 VolumeReadOps, VolumeWriteOps, VolumeIdleTime으로 바꿉니다.
OS 수준 도구를 사용하여 마이크로 버스팅 확인
EBS 볼륨은 볼륨이 사용 중일 때(VolumeIdleTime이 낮음)에도 마이크로 버스팅이 발생할 수 있습니다. VolumeIdleTime이 낮은 볼륨의 경우 세분화된 샘플 수집이 가능한 OS 수준 도구를 사용하면 워크로드가 마이크로 버스팅인지 여부를 더 효율적으로 확인할 수 있습니다.
Linux
마운트된 모든 볼륨에 대한 I/O 통계를 1초 단위로 보고하려면 iostat 명령을 실행합니다.
iostat -xdmzt 1
자세한 내용을 알아보려면 Linux 매뉴얼 페이지 웹사이트의 iostat(1)을 참조하십시오.
참고: iostat 도구는 sysstat 패키지의 일부입니다. iostat 명령을 찾을 수 없는 경우 다음 명령을 실행하여 Amazon Linux Application Machine Images(AMI)에 sysstat를 설치하십시오.
sudo yum install sysstat -y
처리량 한도에 도달했는지 확인하려면 출력의 rMBps 및 wMBps를 검토합니다. rMBps + wMBps가 볼륨의 최대 처리량보다 크면 볼륨에 마이크로 버스팅이 발생합니다.
IOPS 한도에 도달했는지 확인하려면 출력의 rps 및 wps를 검토합니다. rps + wps가 볼륨의 최대 IOPS보다 크면 볼륨에 마이크로 버스트가 발생합니다.
Windows
Windows 성능 모니터에서 perfmon 명령을 실행합니다. 자세한 내용은 IOPS 및 처리량 요구 사항 결정을 참조하십시오.
애플리케이션에 맞게 볼륨 크기 또는 유형을 변경하여 마이크로 버스팅 방지
마이크로 버스팅은 애플리케이션의 I/O 스로틀링 또는 I/O 지연을 유발할 수 있습니다. 이를 방지하려면 마이크로 버스팅 수준에서도 필요한 IOPS 및 처리량을 수용할 수 있는 유형과 크기로 볼륨을 수정하십시오. 자세한 내용은 Amazon EBS 볼륨 유형을 참조하십시오. 인스턴스가 연결된 모든 EBS 볼륨에 푸시할 수 있는 IOPS 및 처리량에는 제한이 있습니다.
워크로드를 기준으로 볼륨을 벤치마킹하여 테스트 환경에서 워크로드를 안전하게 수용할 수 있는 볼륨 유형을 확인하는 것이 좋습니다. 자세한 내용은 Amazon EBS 볼륨 벤치마킹을 참조하십시오.