16.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 busqueqemu
yvirt
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
ovirt
consume una gran parte de la capacidad de la CPU o de la memoria del host, utilice la utilidadperf
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, comomulti-queue virtio-net
.
-
Si la herramienta de monitorización muestra que alguno de los procesos de
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.
-
En los sistemas Linux, puede utilizar la utilidad
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:
En el host, instale el paquete perf:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum install perf
# yum install perf
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 archivoperf.data.guest
, que puede analizarse mediante el comandoperf kvm stat report
.
-
Para la monitorización en tiempo real de su hipervisor, utilice el comando
Analice la salida de
perf
para ver los tipos de eventos deVM-EXIT
y su distribución. Por ejemplo, los eventosPAUSE_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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow perf kvm stat report
# 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:-
INSN_EMULATION
- sugiere una configuración subóptima de E/S de la máquina virtual.
-
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
# 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
# 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