Amazon EBS 볼륨에서 I/O 대기 시간이 길어지고 대기열 길이가 늘어나며 지연 시간이 급증하는 이유는 무엇입니까?

3분 분량
0

Amazon Elastic Block Store(Amazon EBS) 볼륨에서 I/O 대기 시간이 길어지고 대기열 길이가 늘어나며 지연 시간이 급증하고 있습니다. 왜 이런 일이 발생합니까?

간략한 설명

Amazon EBS 볼륨의 경우 대기열 길이가 늘어나고 I/O 대기 시간이 길어지면 I/O 작업 완료에 지연 시간이 있음을 나타냅니다.

지연 시간이 증가하는 가장 일반적인 이유는 다음과 같습니다.

  • EBS 볼륨이 처리량 또는 IOPS 한도에 도달했습니다.
  • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 처리량 또는 IOPS 한도에 도달했습니다.
  • 마이크로 버스팅이 발생하고 있습니다.
  • 볼륨이 스냅샷에서 복원되어 초기화 중입니다.
  • 볼륨의 기본 스토리지 서브시스템에 문제가 있습니다.

해결 방법

볼륨이 처리량 또는 IOPS 한도에 도달

EBS 볼륨은 유형과 크기에 따라 처리량 및 IOPS 한도가 있습니다. 또한 gp3, io1io2 볼륨 유형에 대해 이러한 한도를 프로비저닝할 수 있습니다. 한도에 도달하면 지연이 발생할 수 있습니다. 처리량 및 IOPS 한도를 결정하려면 Amazon EBS 볼륨의 최대 IOPS 및 처리량을 계산하려면 어떻게 해야 합니까?를 참조하세요. 그런 다음 CloudWatch 지표를 사용하여 EC2 인스턴스의 EBS 볼륨이 처리량 또는 IOPS 한도에 도달하는지 확인할 수 있습니다.

처리량 또는 IOPS 한도에 자주 도달하는 경우 애플리케이션 요구 사항에 맞는 볼륨 유형이나 크기로 변경하는 것을 고려해 보십시오. 테스트 환경에서 워크로드와 비교하여 EBS 볼륨을 벤치마크하여 가장 적합한 볼륨 유형을 결정하는 것이 가장 좋습니다.

인스턴스의 처리량 또는 IOPS 한도에 도달

EBS 최적화 인스턴스는 인스턴스에 연결된 모든 EBS 볼륨에서 달성할 수 있는 최대 집계 처리량과 IOPS를 제공합니다. I/O 대기 시간이 길어지고 지연 시간이 증가할 수 있지만 볼륨이 처리량 또는 IOPS 한도에 도달하지 못하고 있습니다. 이런 일이 발생하면 볼륨의 처리량 또는 IOPS가 인스턴스의 처리량 또는 IOPS 한도에 도달했는지 확인하세요.

예를 들어, t3.medium 인스턴스에 연결된 1TiB의 gp3 볼륨이 16,000개의 프로비저닝된 IOPS와 700MiB/s의 처리량을 갖추고 있다고 가정해 보겠습니다. t3.medium 인스턴스는 연결된 모든 볼륨에서 최대 260.57MiB/s 처리량과 11,800 IOPS의 성능을 달성할 수 있습니다. 인스턴스는 24시간 동안 단 30분 동안만 이 작업을 수행합니다. 그런 다음 성능은 연결된 모든 볼륨에서 합산된 43.43MiB/s 처리량과 2,000 IOPS라는 기준선으로 제한됩니다. 단일 볼륨은 최대 700MiB/s 및 16,000 IOPS까지 유지할 수 있지만 인스턴스는 이 성능을 달성할 수 없습니다.

애플리케이션 성능 요구 사항이 인스턴스의 기능을 초과할 경우 워크로드 요구 사항을 유지할 수 있는 인스턴스 유형으로 변경하는 것을 고려해 보십시오. 각각의 Amazon EBS 처리량 및 IOPS 한도가 있는 사용 가능한 인스턴스 유형 목록은 EBS 최적화 인스턴스 사양을 참조하세요.

마이크로 버스팅이 발생하고 있습니다.

마이크로 버스팅은 볼륨이 수집 기간보다 훨씬 짧은 기간 동안 IOPS 또는 처리량을 버스트할 때 발생합니다. 마이크로 버스팅은 Amazon CloudWatch 지표에 반영되지 않으므로 확인하지 않으면 마이크로 버스팅을 놓칠 수 있습니다. 마이크로 버스팅이 문제인지 확인하려면 EBS 볼륨이 마이크로 버스팅 중인지 어떻게 확인할 수 있으며 이 문제를 방지하려면 어떻게 해야 합니까?를 참조하세요.

스냅샷에서 볼륨이 복원되고 초기화 중입니다.

스냅샷에서 볼륨을 복원하면 Amazon Simple Storage Service(Amazon S3)에서 해당 데이터를 가져와서 볼륨에 기록합니다. 이 프로세스를 초기화라고 합니다. 초기화하면 각 데이터 블록에 처음 액세스할 때 I/O 작업의 지연 시간이 늘어날 수 있습니다.

초기화가 볼륨 성능에 미치는 영향을 줄이려면 볼륨의 블록을 읽어 볼륨을 강제로 초기화할 수 있습니다. Amazon EBS 빠른 스냅샷 복원을 활성화하여 볼륨 생성 시 완전히 초기화되도록 할 수도 있습니다.

볼륨의 기본 스토리지 서브시스템에 문제가 있음

위의 문제 해결 단계를 모두 시도했는데도 여전히 높은 지연 시간이 발생하는 경우 AWS Support에 문의하세요.


관련 정보

CloudWatch 지표를 사용하여 EBS 볼륨이 제공하는 평균 처리량과 IOPS의 평균 개수를 계산하려면 어떻게 해야 합니까?

EBS 스냅샷에서 Amazon EBS 볼륨을 복원할 때의 I/O 지연 문제 해결

AWS 공식
AWS 공식업데이트됨 일 년 전