9.3. libvirt NUMA 튜닝


일반적으로 NUMA 시스템에서 최상의 성능은 게스트 크기를 단일 NUMA 노드의 리소스 양으로 제한하여 달성됩니다. NUMA 노드 간에 리소스를 불필요하게 분할하지 않도록 합니다.
numastat 툴을 사용하여 프로세스 및 운영 체제에 대한 NUMA별 메모리 통계를 확인합니다.
다음 예에서 numastat 툴에서는 NUMA 노드 간에 메모리 정렬이 있는 네 개의 가상 머신을 표시합니다.
# numastat -c qemu-kvm

Per-node process memory usage (in MBs)
PID              Node 0 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Total
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
51722 (qemu-kvm)     68     16    357   6936      2      3    147    598  8128
51747 (qemu-kvm)    245     11      5     18   5172   2532      1     92  8076
53736 (qemu-kvm)     62    432   1661    506   4851    136     22    445  8116
53773 (qemu-kvm)   1393      3      1      2     12      0      0   6702  8114
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
Total              1769    463   2024   7462  10037   2672    169   7837 32434
numad 를 실행하여 게스트의 CPU 및 메모리 리소스를 자동으로 정렬합니다.
그런 다음 numastat -c qemu-kvm 을 다시 실행하여 numad 실행 결과를 확인합니다. 다음 출력은 리소스가 정렬되었음을 보여줍니다.
# numastat -c qemu-kvm

Per-node process memory usage (in MBs)
PID              Node 0 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Total
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
51747 (qemu-kvm)      0      0      7      0   8072      0      1      0  8080
53736 (qemu-kvm)      0      0      7      0      0      0   8113      0  8120
53773 (qemu-kvm)      0      0      7      0      0      0      1   8110  8118
59065 (qemu-kvm)      0      0   8050      0      0      0      0      0  8051
---------------  ------ ------ ------ ------ ------ ------ ------ ------ -----
Total                 0      0   8072      0   8072      0   8114   8110 32368
참고
-c 를 사용하여 numastat 를 실행하면 컴팩트 출력을 제공합니다. -m 옵션을 추가하면 노드별로 시스템 전체 메모리 정보가 출력에 추가됩니다. 자세한 내용은 numastat man 페이지를 참조하십시오.

9.3.1. 호스트 NUMA 노드당 메모리 모니터링

nodestats.py 스크립트를 사용하여 호스트의 각 NUMA 노드에 대한 총 메모리 및 사용 가능한 메모리를 보고할 수 있습니다. 이 스크립트는 또한 실행 중인 각 도메인의 특정 호스트 노드에 엄격하게 바인딩된 메모리 양을 보고합니다. 예를 들어 다음과 같습니다.
# /usr/share/doc/libvirt-python-2.0.0/examples/nodestats.py
NUMA stats
NUMA nodes:     0       1       2       3
MemTotal:       3950    3967    3937    3943
MemFree:        66      56      42      41
Domain 'rhel7-0':
         Overall memory: 1536 MiB
Domain 'rhel7-1':
         Overall memory: 2048 MiB
Domain 'rhel6':
         Overall memory: 1024 MiB nodes 0-1
         Node 0: 1024 MiB nodes 0-1
Domain 'rhel7-2':
         Overall memory: 4096 MiB nodes 0-3
         Node 0: 1024 MiB nodes 0
         Node 1: 1024 MiB nodes 1
         Node 2: 1024 MiB nodes 2
         Node 3: 1024 MiB nodes 3
이 예에서는 호스트 NUMA 노드 4개를 나타내며 각각 약 4GB의 RAM을 총(MemTotal)에 포함합니다. 각 도메인(MemFree)에서 거의 모든 메모리가 사용됩니다. 실행 중인 네 개의 도메인(가상 시스템)이 있습니다. 'rhel7-0' 에는 특정 호스트 NUMA 노드에 고정되어 있지 않은 1.5GB 메모리가 있습니다. 그러나 도메인 'rhel7-2' 에는 호스트 노드에 1:1 고정되는 4GB 메모리와 4개의 NUMA 노드가 있습니다.
호스트 NUMA 노드 통계를 출력하려면 환경에 대한 nodestats.py 스크립트를 만듭니다. 예제 스크립트는 /usr/share/doc/libvirt-python-version/examples/nodestats.py 에서 libvirt-python 패키지 파일을 찾을 수 있습니다. rpm -ql libvirt-python 명령을 사용하여 스크립트의 특정 경로를 표시할 수 있습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.