Tengo un servidor Linux con 4 invitados Linux KVM. Todos los invitados están prácticamente inactivos, con una carga de <0.1 dentro del invitado.
Ahora, si hago un top
en el host, cada proceso KVM está usando algo sobre el 30% de la CPU.
¿Es este un comportamiento normal? Esperaría que el host necesitara mucho menos CPU solo para alojar un invitado inactivo.
Si es normal, ¿cuál es la razón de esto?
Si no es normal, ¿cuál podría ser el problema?
performance
cpu
kvm
virtualization
michas
fuente
fuente
Respuestas:
Siendo cínico, podría decir que es "normal" para los invitados de Windows pero no para los invitados de Linux (al menos nunca vi que uno se comportara así).
Con Windows, depende mucho de las aplicaciones que se ejecutan (casi inactivo). Un XP simple o W2K (todavía no tengo experiencia con las versiones más nuevas en KVM) causa del 10% al 20% en el host (se muestra aproximadamente 0% dentro), pero el servidor MS SQL obtiene esto fácilmente por encima del 30%. Esto parece estar relacionado con el acceso al temporizador y / o ACPI de alguna manera. Pero incluso en una VM que no es ACPI, nunca tuve Windows por debajo del 10% en el host.
Edición 1 (integrando comentarios)
¿Cuál es la salida de
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
(en el invitado)? Eso debería ser kvm-clock. Verifique la configuración de su núcleo (/proc/config.gz) para CONFIG_PARAVIRT_CLOCK y CONFIG_KVM_CLOCK.Esta es una lista de las opciones de configuración del kernel relevantes para KVM .
fuente
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
?acpi_pm
en el invitado ytsc
en el host. No X, pero se está ejecutando un servidor de aplicaciones Java y un DB de Oracle en cada invitado.kvm-clock
en su lugar (en el invitado). Nunca tuve que configurar eso explícitamente. Verifique la configuración de su kernel (/proc/config.gz
) paraCONFIG_PARAVIRT_CLOCK
yCONFIG_KVM_CLOCK
.y
. Establecer current_clocksource parakvm-clock
mejorar las cosas. Ahora cada proceso KVM es de alrededor del 20 por ciento. El sistema se migró a KVM desde una configuración anterior de virtualbox. Parece que todavía hay algunos ajustes de la configuración anterior ...Verificaría para asegurarme de que los invitados KVM estén aprovisionados para que puedan utilizar todos los recursos del host (CPU, RAM, etc.). Por lo general, los invitados KVM solo se asignan, por ejemplo, 1-2 CPU (núcleos) en un sistema que puede contener muchos más.
Esto significa que no está comparando exactamente lo mismo al mirar los recursos del host frente a los elementos internos de un invitado KVM dado.
Por ejemplo
El anfitrión tiene lo siguiente:
Si bien uno de los invitados de KVM tiene esto:
fuente