16.5. Optimización del rendimiento de la CPU de la máquina virtual
Al igual que las CPUs físicas en las máquinas anfitrionas, las vCPUs son críticas para el rendimiento de las máquinas virtuales (VM). Como resultado, la optimización de las vCPUs puede tener un impacto significativo en la eficiencia de los recursos de sus VMs. Para optimizar su vCPU:
- Ajuste cuántas CPUs de host se asignan a la VM. Puede hacerlo mediante la CLI o la consola web.
Asegúrese de que el modelo de vCPU está alineado con el modelo de CPU del host. Por ejemplo, para configurar la VM testguest1 para que utilice el modelo de CPU del host:
# virt-xml testguest1 --edit --cpu host-model
- Desactivar la fusión de páginas del núcleo (KSM).
Si su máquina anfitriona utiliza acceso no uniforme a la memoria (NUMA), también puede configure NUMA para sus máquinas virtuales. Esto mapea los procesos de la CPU y la memoria del host en los procesos de la CPU y la memoria de la VM lo más cerca posible. En efecto, el ajuste NUMA proporciona a la vCPU un acceso más ágil a la memoria del sistema asignada a la VM, lo que puede mejorar la eficacia del procesamiento de la vCPU.
Para más detalles, consulte Sección 16.5.3, “Configuración de NUMA en una máquina virtual” y Sección 16.5.4, “Ejemplo de escenario de ajuste de rendimiento de vCPU”.
16.5.1. Añadir y eliminar CPUs virtuales mediante la interfaz de línea de comandos
Para aumentar u optimizar el rendimiento de la CPU de una máquina virtual (VM), puede añadir o eliminar CPUs virtuales (vCPUs) asignadas a la VM.
Cuando se realiza en una VM en ejecución, esto también se conoce como vCPU hot plugging y hot unplugging. Sin embargo, tenga en cuenta que la desconexión en caliente de vCPU no está soportada en RHEL 8 y Red Hat desaconseja su uso.
Requisitos previos
Optional: Ver el estado actual de las vCPUs en la VM objetivo. Por ejemplo, para mostrar el número de vCPUs en la VM testguest:
# virsh vcpucount testguest maximum config 4 maximum live 2 current config 2 current live 1
Esta salida indica que testguest está usando actualmente 1 vCPU, y se puede conectar en caliente 1 vCPu más para aumentar el rendimiento de la VM. Sin embargo, después de reiniciar, el número de vCPUs que utiliza testguest cambiará a 2, y será posible conectar en caliente 2 vCPUs más.
Procedimiento
Ajusta el número máximo de vCPUs que se pueden adjuntar a una VM, que entra en vigor en el siguiente arranque de la VM.
Por ejemplo, para aumentar el número máximo de vCPU para la VM testguest a 8:
# virsh setvcpus testguest 8 --maximum --config
Tenga en cuenta que el máximo puede estar limitado por la topología de la CPU, el hardware del host, el hipervisor y otros factores.
Ajuste el número actual de vCPUs adjuntas a una VM, hasta el máximo configurado en el paso anterior. Por ejemplo:
Para aumentar el número de vCPUs adjuntas a la VM testguest en ejecución a 4:
# virsh setvcpus testguest 4 --live
Esto aumenta el rendimiento de la VM y la huella de carga del host de testguest hasta el siguiente arranque de la VM.
Para disminuir permanentemente el número de vCPUs adjuntas a la VM testguest a 1:
# virsh setvcpus testguest 1 --config
Esto disminuye el rendimiento de la VM y la huella de carga del host de testguest después del siguiente arranque de la VM. Sin embargo, si es necesario, se pueden conectar en caliente vCPUs adicionales a la VM para aumentar temporalmente su rendimiento.
Verificación
Confirme que el estado actual de vCPU para la VM refleja sus cambios.
# virsh vcpucount testguest maximum config 8 maximum live 4 current config 1 current live 4
Recursos adicionales
- Para obtener información sobre cómo añadir y eliminar vCPUs mediante la consola web, consulte Sección 16.5.2, “Gestión de las CPUs virtuales mediante la consola web”.