¿Por qué Windows VM inactivo usa tanta CPU?

12

Tengo 2 máquinas virtuales que se ejecutan como invitados en una plataforma de virtualización KVM que se ejecuta en Ubuntu 10.04. Una VM es un sistema Ubuntu 10.04, la otra es un sistema Windows 7. Cuando ambas máquinas están completamente desconectadas, la máquina Linux usa 1% de CPU, la de Windows 45-50%, según la parte superior. Los gráficos en virt-manager parecen respaldar esto. No hay nada instalado en la imagen de Win7 que se ejecute en segundo plano; Es tan fresco como puede ser.

¿Por qué la VM de Windows usa mucho más que la VM de Linux, cuando ambos están desconectados y en reposo?

Editar:

Instalé al huésped con almacenamiento paravirt y controladores de red desde el primer momento. No creo que haya otros controladores que me faltan, ¿estoy equivocado?

De acuerdo con el administrador de tareas del invitado, de hecho está inactivo. Taskman ocupa aproximadamente 1 o 2% de la CPU invitada, pero no hay otros procesos que ocupen tiempo de CPU.

Jeff Shattock
fuente

Respuestas:

4

¿Qué versión de QEMU-KVM está ejecutando?

Hemos visto este problema en las versiones 0.12.3 y anteriores, pero no parece ser un gran problema en 0.12.4. Además, verifique si los protectores de pantalla se están ejecutando. Si está utilizando la conexión VNC, entonces puede estar ejecutándose allí, y la utilización de la CPU no estará dentro de la VM, sino que será utilizada por el proceso KVM.

trevoro
fuente
1
0.12.3. Construiré en 0.12.4 y veré si esto desaparece.
Jeff Shattock
1
Y de hecho lo hizo. Windows encontró un controlador para una CPU virtual Qemu 0.12.4, y este problema desapareció después del reinicio de un invitado.
Jeff Shattock
7

Sé que mi respuesta llega después de 100 años, pero: para referencia futura, vea aquí:

http://forum.proxmox.com/threads/5770-Windows-guest-high-context-switch-rate-when-idle

Si ese es el caso, entonces aquí está la solución: http://support.microsoft.com/kb/895980

Soltó mi uso de CPU de invitado Win2K3 R2 (cuando el invitado estaba inactivo) en mi host x86_64 kvm de ~ 30% -40% a 6%

Eugen
fuente
2
El hilo en Proxmox tiene una información útil: eliminar el hardware virtual de la tableta USB de la VM de Windows eliminará la cantidad de cambios de contexto. Mi máquina virtual de Windows inactiva pasó de 20% de CPU host a 5% de CPU host.
Colin 't Hart
Gracias, trabajó para mi. El dispositivo virtual de la tableta envió interminables solicitudes de interrupción
michaelbn
1

El hecho de que Windows esté recién instalado no significa que no ejecute procesos o servicios en segundo plano. Monitoree la máquina de Windows con SNMP o el administrador de tareas e intente averiguar si realmente está inactivo. Como dijo Massimo, también debe instalar controladores de pravirtualización para su sistema operativo invitado. Nunca he visto una máquina virtual inactiva para tomar recursos de la CPU del host.

Mircea Vutcovici
fuente
0

No sé nada sobre KVM, pero en VMware esto puede suceder si no instala las herramientas de VMware en la máquina virtual, por lo que no tiene los controladores de dispositivo adecuados para el hardware virtualizado y no puede instalar su CPU virtual en reposo real cuando en realidad no está haciendo nada, en su lugar utiliza un bucle inactivo simple (que en realidad corresponde a que la CPU esté completamente ocupada en bucle sobre sí misma).

¿Quizás haya algo similar a las herramientas de VMware que debería instalar en su VM?

Massimo
fuente
-2

Primero, deje de comparar Windows y Linux o espere que se comporten igual. Ellos son diferentes.

Windows nunca está inactivo. Ejecuta muchas tareas en segundo plano y desde mi breve experiencia con Win 7 hace más de eso que decir XP. Una cosa que ayudará a aliviar la carga es comenzar a cerrar los servicios necesarios, como el servicio de indexación.

John Gardeniers
fuente
1
Linux también ejecuta muchos "servicios" en segundo plano. Y el póster original confirmó que el Administrador de tareas muestra 1-2% de CPU utilizada en el invitado de Windows.
Colin 't Hart
@Colin, como todos sabemos, el Administrador de tareas miente sobre las cargas de CPU. ¿Quién aquí no lo ha visto informar un 98% de inactividad y el sistema todavía no responde por completo a la temperatura de la CPU debido a la carga? También soy consciente de que Linux también ejecuta tareas en segundo plano, pero el punto que estaba señalando es que Linux y Windows son animales completamente diferentes. Aquellos que intentan comparar uno con el otro siempre lucharán más que aquellos que simplemente aceptan que son diferentes y tratan a cada uno como una entidad separada.
John Gardeniers
1
Eso no tiene sentido en absoluto.
Colin 't Hart
@Colin, probablemente sea porque este tipo de cosas está fuera de tu campo. Cualquier Windows que haya existido por un tiempo entenderá lo que escribí sobre la carga de la CPU. Cualquiera que trabaje con Windows y Linux debería entender el resto. Como no trabajas en el mismo campo, realmente no espero que entiendas estas cosas, así como no entendería nada de Oracle.
John Gardeniers
¿Qué te hace pensar que no trabajo en el mismo campo?
Colin 't Hart