메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

Linux 인스턴스의 Amazon EBS 볼륨 성능

I/O 특성, 인스턴스와 볼륨의 구성 등 여러 가지 요인이 Amazon EBS 볼륨에 영향을 끼칠 수 있습니다. Amazon EBS 및 Amazon EC2 제품 세부정보 페이지의 지침을 따르는 고객은 대체로 처음부터 우수한 성능을 달성할 수 있습니다. 그러나 경우에 따라 플랫폼에서 피크 성능을 얻기 위해서는 약간의 튜닝이 필요합니다. 이 주제에서는 일반적인 모범 사례 및 특정한 사용 사례에만 적용되는 성능 튜닝에 대해 설명합니다. 벤치마킹 외에도 실제 워크로드의 정보에 따라 성능을 튜닝하여 최적의 구성을 결정하는 것이 좋습니다. EBS 볼륨 작업의 기초를 배운 후에는 필요한 I/O 성능과 그러한 요건에 맞게 Amazon EBS 성능을 향상하기 위한 옵션을 살펴보는 것이 좋습니다.

Amazon EBS 성능 팁

이러한 팁은 다양한 사용자 시나리오에서 최적의 EBS 볼륨 성능을 달성하는 방법에 대한 모범 사례를 보여줍니다.

EBS 최적화 인스턴스 사용

EBS 최적화 처리량을 지원하지 않는 인스턴스에서는 네트워크 트래픽이 사용자의 인스턴스와 EBS 볼륨 간 트래픽과 경합할 수 있습니다. EBS 최적화 인스턴스에서는 이 두 유형의 트래픽이 분리되어 있습니다. 일부 EBS 최적화 인스턴스 구성은 추가 요금을 요구하지만(예: C3, R3, M3), 일부는 추가 요금 없이 항상 EBS에 최적화됩니다(예: M4, C4, C5, D2). 자세한 내용은 Amazon EC2 인스턴스 구성 단원을 참조하십시오.

성능 계산 방법 이해

EBS 볼륨의 성능을 측정할 때는 관련된 측정 단위와 성능 계산 방법을 이해해야 합니다. 자세한 내용은 I/O 특성 및 모니터링 단원을 참조하십시오.

워크로드 이해

EBS 볼륨의 최대 성능, I/O 작업의 크기와 횟수, 각 작업을 완료하는 데 걸리는 시간은 서로 관련이 있습니다. 이러한 각 요소(성능, I/O 및 지연 시간)는 서로에게 영향을 미치며 애플리케이션마다 다른 요소에 더 민감합니다. 자세한 내용은 EBS 볼륨 벤치마크 단원을 참조하십시오.

스냅샷에서 볼륨을 초기화하는 경우 성능 저하에 유의

스냅샷에서 복원된 새 EBS 볼륨의 각 데이터 블록에 처음 액세스할 때 지연 시간이 상당히 증가합니다. 볼륨을 프로덕션 환경에 투입하기 전 각 블록에 액세스하면 이러한 성능 저하를 막을 수 있습니다. 이 프로세스를 초기화(이전에는 사전 워밍이라고 함)라고 합니다. 자세한 내용은 Amazon EBS 볼륨 초기화 단원을 참조하십시오.

HDD 성능을 저하시킬 수 있는 요인

처리량에 최적화된 HDD(st1) 또는 Cold HDD(sc1) 볼륨의 스냅샷을 생성하는 경우, 스냅샷이 진행되는 동안 성능이 볼륨의 기준 값까지 떨어질 수 있습니다. 이 동작은 이러한 볼륨 유형에만 해당합니다. 성능을 제한할 수 있는 다른 요소로는 인스턴스가 지원할 수 있는 수준 이상의 처리량을 구동하는 경우, 스냅샷에서 복원한 볼륨을 초기화하는 동안의 성능 저하, 볼륨에 소량의 랜덤 I/O가 과도하게 많은 경우 등을 들 수 있습니다. HDD 볼륨의 처리량 계산에 관한 자세한 내용은 Amazon EBS 볼륨 유형을 참조하십시오.

애플리케이션이 충분한 I/O 요청을 보내지 않는 경우에도 성능이 영향을 받을 수 있습니다. 볼륨의 대기열 길이와 I/O 크기를 보면 확인할 수 있습니다. 대기열 길이는 애플리케이션에서 볼륨으로 보내는 I/O 요청 중 대기 중인 요청의 수입니다. 일관성을 극대화하기 위해 HDD 지원 볼륨은 1MiB 순차 I/O를 수행하는 동안 4 이상의 대기열 길이(반올림)를 유지해야 합니다. 일정한 볼륨 성능 보장에 관한 자세한 내용은 I/O 특성 및 모니터링 단원을 참조하십시오.

st1sc1에서 처리량이 높은 읽기 중심 워크로드의 미리 읽기 향상

일부 워크로드는 읽기 중심이며 운영 체제 페이지 캐시를 통해(예: 파일 시스템에서) 블록 디바이스에 액세스합니다. 이 경우 최대 처리량을 획득하려면 미리 읽기 설정을 1MiB로 구성하는 것이 좋습니다. 이것은 HDD 볼륨에만 적용되는 블록 디바이스별 설정입니다. 다음 예시는 사용자가 Amazon Linux 인스턴스를 실행한다고 가정합니다.

블록 디바이스의 현재 미리읽기 값을 검사하려면 다음 명령을 사용합니다.

Copy
[ec2-user ~]$ sudo blockdev --report /dev/<device>

블록 디바이스 정보는 다음 형식으로 반환됩니다.

RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096       4096      8587820544   /dev/<device>

보기의 디바이스는 256바이트(기본값)의 미리 읽기 값을 보고합니다. 이 값에 섹터 크기(512바이트)를 곱하면 미리읽기 버퍼의 크기를 구할 수 있습니다(이 경우에는 128KiB). 버퍼 값을 1MiB로 설정하려면 다음 명령을 사용합니다.

Copy
[ec2-user ~]$ sudo blockdev --setra 2048 /dev/<device>

첫 번째 명령을 다시 실행해서 현재 미리읽기 설정에 2,048이 표시되는지 확인합니다.

워크로드가 대용량 순차 I/O로 구성된 경우에만 이 설정을 사용합니다. 대부분이 소량 랜덤 I/O로 구성된 경우 이 설정은 실제로 성능을 저하시킵니다. 일반적으로 워크로드의 대부분의 소용량 또는 랜덤 I/O로 구성된 경우 st1이나 sc1보다는 범용 SSD(gp2) 볼륨 사용을 고려해야 합니다.

최신 Linux 커널 사용

간접 서술자를 지원하는 최신 Linux 커널을 사용합니다. 현재 세대 EC2 인스턴스뿐만 아니라 Linux 커널 3.11 이상 버전도 모두 이 지원을 제공합니다. 평균 I/O 크기가 44KiB 정도인 경우에는 간접 서술자가 지원되지 않는 인스턴스 또는 커널을 사용 중일 수 있습니다. Amazon CloudWatch 측정치에서 평균 I/O 크기를 도출하는 방법에 관한 내용은 I/O 특성 및 모니터링 단원을 참조하십시오.

st1 또는 sc1 볼륨의 처리량을 극대화하려면 xen_blkfront.max 파라미터(Linux 커널 버전 4.6 미만) 또는 xen_blkfront.max_indirect_segments 파라미터(Linux 커널 버전 4.6 이상)에 값 256을 적용하는 것이 좋습니다. 해당 파라미터는 OS 부팅 명령줄에서 설정할 수 있습니다.

예를 들어 이전 커널을 사용하는 Amazon Linux AMI에서 /boot/grub/menu.lst의 GRUB 구성에 있는 커널 라인의 끝에 이것을 추가할 수 있습니다.

Copy
kernel /boot/vmlinuz-4.4.5-15.26.amzn1.x86_64 root=LABEL=/ console=ttyS0 xen_blkfront.max=256

이후 커널의 경우 명령은 다음과 같을 것입니다.

Copy
kernel /boot/vmlinuz-4.9.20-11.31.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 xen_blkfront.max_indirect_segments=256

이 설정을 적용하려면 인스턴스를 재부팅합니다.

자세한 내용은 GRUB 구성을 참조하십시오. 다른 Linux 배포판, 특히 GRUB 부트 로더를 사용하지 않는 경우에는 다른 방식으로 커널 파라미터를 조정해야 할 수 있습니다.

EBS I/O 특성에 관한 자세한 내용은 이 주제를 다룬 Amazon EBS: Designing for Performance re:Invent 발표를 참조하십시오.

RAID 0을 사용하여 인스턴스 리소스 활용도 극대화

일부 인스턴스 유형은 단일 EBS 볼륨에 대해 프로비저닝할 수 있는 것보다 많은 I/O 처리량을 구동할 수 있습니다. 여러 gp2, io1, st1 또는 sc1 볼륨을 RAID 0 구성으로 함께 조인하여 이 인스턴스에 사용 가능한 대역폭을 사용할 수 있습니다. 자세한 내용은 Linux의 RAID 구성 단원을 참조하십시오.

Amazon CloudWatch로 성능 추적

Amazon Web Services는 Amazon CloudWatch를 통해 보고 분석할 수 있는 Amazon EBS에 대한 성능 지표와 볼륨의 상태를 모니터링하는 데 사용할 수 있는 상태 검사를 제공합니다. 자세한 내용은 볼륨 상태 모니터링 단원을 참조하십시오.

이 페이지에서: