검색

18.8. 가상 머신 성능 모니터링 툴

download PDF

가장 많은 VM 리소스를 소비하는 것과 VM 성능의 최적화가 필요한 측면을 확인하기 위해 일반 및 VM 관련 성능 진단 툴을 사용할 수 있습니다.

기본 OS 성능 모니터링 툴

표준 성능 평가를 위해 호스트 및 게스트 운영 체제에서 기본적으로 제공하는 유틸리티를 사용할 수 있습니다.

  • RHEL 9 호스트에서 root로 상위 유틸리티 또는 시스템 모니터 애플리케이션을 사용하고 출력에서 qemuvirt 을 찾습니다. 이는 VM에서 사용하는 호스트 시스템 리소스의 양을 보여줍니다.

    • 모니터링 툴에서 qemu 또는 virt 프로세스가 호스트 CPU 또는 메모리 용량의 많은 부분을 사용하도록 표시되면 perf 유틸리티를 사용하여 조사합니다. 자세한 내용은 아래를 참조하십시오.
    • 또한, 예를 들어 vhost_net -1234 에 대해 이름이 지정된 vhost_net 스레드 프로세스가 과도한 양의 호스트 CPU 용량을 사용하는 것으로 표시되면 다중 대기열 virtio-net 과 같은 가상 네트워크 최적화 기능을 사용하는 것이 좋습니다.
  • 게스트 운영 체제에서는 시스템에서 사용 가능한 성능 유틸리티와 애플리케이션을 사용하여 가장 많은 시스템 리소스를 사용하는 프로세스를 평가합니다.

    • Linux 시스템에서는 top 유틸리티를 사용할 수 있습니다.
    • Windows 시스템에서는 작업 관리자 애플리케이션을 사용할 수 있습니다.

perf kvm

perf 유틸리티를 사용하여 RHEL 9 호스트의 성능에 대한 가상화 관련 통계를 수집하고 분석할 수 있습니다. 이렇게 하려면 다음을 수행합니다.

  1. 호스트에서 perf 패키지를 설치합니다.

    # dnf install perf
  2. perf kvm stat 명령 중 하나를 사용하여 가상화 호스트에 대한 perf 통계를 표시합니다.

    • 하이퍼바이저를 실시간 모니터링하려면 perf kvm stat live 명령을 사용합니다.
    • 일정 기간 동안 하이퍼바이저의 perf 데이터를 기록하려면 perf kvm stat record 명령을 사용하여 로깅을 활성화합니다. 명령이 취소되거나 중단된 후 데이터는 perf kvm stat report 명령을 사용하여 분석할 수 있는 perf.data.guest 파일에 저장됩니다.
  3. VM-EXIT 이벤트 유형과 해당 배포에 대한 perf 출력을 분석합니다. 예를 들어 PAUSE_INSTRUCTION 이벤트는 자주 발생하지 않아야 하지만 다음 출력에서는 호스트 CPU가 실행 중인 vCPU를 잘 처리하지 않음을 시사합니다. 이러한 시나리오에서는 활성 VM 중 일부를 종료하거나 이러한 VM에서 vCPU를 제거하거나 vCPU의 성능을 조정하는 것이 좋습니다.

    # perf kvm stat report
    
    Analyze events for all VMs, all VCPUs:
    
    
                 VM-EXIT    Samples  Samples%     Time%    Min Time    Max Time         Avg time
    
      EXTERNAL_INTERRUPT     365634    31.59%    18.04%      0.42us  58780.59us    204.08us ( +-   0.99% )
               MSR_WRITE     293428    25.35%     0.13%      0.59us  17873.02us      1.80us ( +-   4.63% )
        PREEMPTION_TIMER     276162    23.86%     0.23%      0.51us  21396.03us      3.38us ( +-   5.19% )
       PAUSE_INSTRUCTION     189375    16.36%    11.75%      0.72us  29655.25us    256.77us ( +-   0.70% )
                     HLT      20440     1.77%    69.83%      0.62us  79319.41us  14134.56us ( +-   0.79% )
                  VMCALL      12426     1.07%     0.03%      1.02us   5416.25us      8.77us ( +-   7.36% )
           EXCEPTION_NMI         27     0.00%     0.00%      0.69us      1.34us      0.98us ( +-   3.50% )
           EPT_MISCONFIG          5     0.00%     0.00%      5.15us     10.85us      7.88us ( +-  11.67% )
    
    Total Samples:1157497, Total events handled time:413728274.66us.

    perf kvmstat 의 출력에서 문제를 신호할 수 있는 기타 이벤트 유형은 다음과 같습니다.

perf 를 사용하여 가상화 성능을 모니터링하는 방법에 대한 자세한 내용은 시스템의 perf-kvm 도움말 페이지를 참조하십시오.

numastat

시스템의 현재 NUMA 구성을 보려면 numactl 패키지를 설치하여 제공하는 numastat 유틸리티를 사용할 수 있습니다.

다음은 4개의 실행 중인 VM이 있는 호스트를 나타내며 각각 여러 NUMA 노드에서 메모리를 가져옵니다. 이는 vCPU 성능에 최적이 아니며 조정을 보장합니다.

# 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

반면, 다음에서는 단일 노드에서 각 VM에 제공되는 메모리를 보여줍니다. 이는 훨씬 더 효율적입니다.

# 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
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.