EC2 인스턴스에서 실행 중인 워크로드에 대한 NUMA 통계를 검토하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) Nitro 기반 인스턴스에서 워크로드를 실행하고 있습니다. 성능 및 Non-Uniform Memory Access(NUMA) 통계를 검토하고 싶습니다.

간략한 설명

EC2 인스턴스에서 호스팅되는 애플리케이션의 성능에 영향을 미치는 요인은 다음과 같습니다.

  • CPU 과다 사용
  • 메모리 사용
  • EBS 볼륨
  • 네트워크 통계
  • NUMA를 인식하지 못함

NUMA 아키텍처에서는 각 CPU가 자체적으로 할당된 메모리(로컬 메모리)에 액세스할 수 있습니다. 각 CPU는 다른 CPU에 할당된 메모리(외부 메모리)에도 액세스할 수 있습니다. 인스턴스에서 호스팅되는 애플리케이션이 NUMA를 인식하지 못하는 경우, 외부 메모리에 액세스하면 추가 비용이 발생하고 성능에 영향을 미칠 수 있습니다. 애플리케이션이 NUMA를 인식하는지 확인하려면 애플리케이션 공급업체에 문의하세요.

해결 방법

NUMA 통계 검토

참고: NUMA 통계 이외의 성능 구성 요소를 검토하려면 EC2 인스턴스에서 호스팅되는 웹사이트의 느린 연결 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

NUMA 통계를 검토하려면 다음 단계를 완료하세요.

1.    다음 명령을 실행하여 인스턴스 유형이 단일 NUMA 또는 다중 NUMA 노드인지 확인합니다.

참고: 인스턴스 유형은 r5.16xlarge이며 2개의 NUMA 노드가 있습니다.

lscpu | grep -i numa
NUMA node(s): 2

2.    다음 명령을 실행하여 numactl 패키지를 설치합니다.

sudo yum install numactl

3.    다음 명령을 실행하여 NUMA 토폴로지를 검토합니다.

sudo numactl -H

다음 예시 출력에서 NUMA 토폴로지는 노드 0노드 1의 두 가지 노드로 구분됩니다. 노드 0에는 32개의 CPU와 255,225MB의 메모리가 할당되어 있습니다. 노드 1에는 나머지 절반의 CPU와 254,924MB의 메모리가 할당되어 있습니다. 노드 거리는 다른 노드에서 메모리 페이지에 액세스할 때의 지연 시간을 나타냅니다.


available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
node 0 size: 255140 MB
node 0 free: 254794 MB
node 1 cpus: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
node 1 size: 255225 MB
node 1 free: 254924 MB
node distances:
node   0   1
0:  10  21
1:  21  10

4.    다음 명령을 실행하여 NUMA 통계를 검토합니다.

sudo numastat

다음은 명령 출력의 예입니다.

node                       node0           node1
numa_hit                  314825          288025
numa_miss                      0               0
numa_foreign                   0               0
interleave_hit             37958           37620
local_node                311752          248476
other_node                  3073           39549

각 통계에 대한 자세한 설명은 Red Hat Customer Portal의 A.11. NUMASTAT을 참조하세요.

numa_foreignnuma_miss 통계가 증가하면 EC2 인스턴스에서 실행되는 애플리케이션이 NUMA를 인식하지 못하는 것일 수 있습니다. 그러면 성능에 영향을 미칠 수도 있습니다. 이 문제를 해결하려면 grub 수준에서 NUMA를 끄세요. 또는 애플리케이션을 특정 NUMA 노드에 바인딩해 보세요. 자세한 내용은 운영 체제 최적화를 참조하세요.

영구적으로 NUMA 끄기 

Amazon Linux 2, CentOS7 또는 RHEL 7에서 NUMA를 영구적으로 끄려면 다음 명령을 실행합니다.

sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="numa=off"
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo reboot

Amazon Linux 2023에서 NUMA를 영구적으로 끄려면 다음 명령을 실행합니다.

# grubby --args "numa=off" —update-kernel DEFAULT
AWS 공식
AWS 공식업데이트됨 일 년 전