Red Hat Training

A Red Hat training course is available for RHEL 8

11.7. Herramientas de supervisión del rendimiento de las máquinas virtuales

Para identificar qué es lo que consume más recursos de la VM y qué aspecto del rendimiento de la VM necesita ser optimizado, se pueden utilizar herramientas de diagnóstico de rendimiento, tanto generales como específicas para la VM.

Herramientas de supervisión del rendimiento del sistema operativo por defecto

Para la evaluación estándar del rendimiento, puede utilizar las utilidades proporcionadas por defecto por sus sistemas operativos anfitrión y huésped:

  • En su host RHEL 8, como root, utilice la utilidad top o la aplicación system monitor, y busque qemu y virt en la salida. Esto muestra la cantidad de recursos del sistema anfitrión que sus máquinas virtuales están consumiendo.

    • Si la herramienta de monitorización muestra que alguno de los procesos de qemu o virt consume una gran parte de la capacidad de la CPU o de la memoria del host, utilice la utilidad perf para investigar. Para más detalles, véase más abajo.
    • Además, si un proceso de hilo de vhost_net, llamado por ejemplo vhost_net-1234, se muestra como consumiendo una cantidad excesiva de capacidad de la CPU del host, considere el uso de las características de optimización de la red virtual, como multi-queue virtio-net.
  • En el sistema operativo invitado, utilice las utilidades de rendimiento y las aplicaciones disponibles en el sistema para evaluar qué procesos consumen más recursos del sistema.

    • En los sistemas Linux, puede utilizar la utilidad top.
    • En los sistemas Windows, puede utilizar la aplicación Task Manager.

perf kvm

Puede utilizar la utilidad perf para recopilar y analizar estadísticas específicas de la virtualización sobre el rendimiento de su host RHEL 8. Para ello:

  1. En el host, instale el paquete perf:

    # yum install perf
  2. Utilice el comando perf kvm stat para mostrar las estadísticas de perfeccionamiento de su host de virtualización:

    • Para la monitorización en tiempo real de su hipervisor, utilice el comando perf kvm stat live.
    • Para registrar los datos de perf de su hipervisor durante un periodo de tiempo, active el registro mediante el comando perf kvm stat record. Una vez cancelado o interrumpido el comando, los datos se guardan en el archivo perf.data.guest, que puede analizarse mediante el comando perf kvm stat report.
  3. Analice la salida de perf para ver los tipos de eventos de VM-EXIT y su distribución. Por ejemplo, los eventos PAUSE_INSTRUCTION deberían ser poco frecuentes, pero en la siguiente salida, la alta ocurrencia de este evento sugiere que las CPUs del host no están manejando bien las vCPUs en funcionamiento. En tal escenario, considere apagar algunas de sus VMs activas, remover vCPUs de estas VMs, o afinar el rendimiento de las vCPUs.

    # 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.

    Otros tipos de eventos que pueden señalar problemas en la salida de perf kvm stat incluyen:

Para obtener más información sobre el uso de perf para supervisar el rendimiento de la virtualización, consulte la página de manual perf-kvm.

numastat

Para ver la configuración NUMA actual de tu sistema, puedes utilizar la utilidad numastat, que se proporciona al instalar el paquete numactl.

A continuación se muestra un host con 4 VMs en ejecución, cada una de las cuales obtiene memoria de múltiples nodos NUMA. Esto no es óptimo para el rendimiento de las vCPUs, y justifica un ajuste:

# 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

Por el contrario, a continuación se muestra la memoria proporcionada a cada VM por un único nodo, lo que es significativamente más eficiente.

# 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