Por que a VM ociosa do Windows está usando tanta CPU?

12

Eu tenho 2 VMs em execução como convidados em uma plataforma de virtualização KVM em execução no Ubuntu 10.04. Uma VM é um sistema Ubuntu 10.04, a outra é um sistema Windows 7. Quando as duas máquinas estão completamente desconectadas, a máquina Linux usa 1% da CPU, e a do Windows 45-50%, de acordo com a parte superior. Os gráficos no virt-manager parecem apoiar isso. Não há nada instalado na imagem do Win7 que esteja sendo executado em segundo plano; é o mais fresco possível.

Por que a VM do Windows está usando muito mais que a VM do Linux, quando as duas estão desconectadas e ociosas?

Editar:

Eu instalei o convidado com armazenamento de paravirt e drivers de rede desde o início. Não acredito que exista outro driver que esteja faltando, estou errado?

De acordo com o gerente de tarefas do hóspede, ele está realmente ocioso. O Taskman ocupa cerca de 1 ou 2% da CPU convidada, mas não há outros processos que consomem tempo da CPU.

Jeff Shattock
fonte

Respostas:

4

Qual versão do QEMU-KVM você está executando?

Vimos esse problema nas versões 0.12.3 e inferior, mas não parece ser um problema demais na 0.12.4. Além disso, verifique se os protetores de tela estão em execução. Se você estiver usando a conexão VNC, ela poderá estar em execução lá, e a utilização da CPU não estará dentro da VM - será usada pelo processo KVM.

Trevoro
fonte
1
0.12.3 Vou construir na versão 0.12.4 e ver se isso desaparece.
Jeff Shattock
1
E de fato aconteceu. O Windows encontrou um driver para uma CPU virtual Qemu 0.12.4 e esse problema desapareceu após a reinicialização de um convidado.
Jeff Shattock
7

Eu sei que minha resposta vem depois de 100 anos, mas: para referência futura, consulte aqui:

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

Se esse for o caso, aqui está a solução: http://support.microsoft.com/kb/895980

Ele reduziu meu uso da CPU do convidado do Win2K3 R2 (quando o hóspede estava ocioso) no meu host x86_64 kvm de ~ 30% -40% para 6%

Eugen
fonte
2
O tópico no Proxmox possui uma informação útil: remover o hardware virtual do tablet USB da VM do Windows reduzirá o número de opções de contexto. Minha VM inativa do Windows passou de 20% da CPU do host para 5% da CPU do host.
Colin 'Hart Hart
Obrigado, trabalhou para mim. O dispositivo virtual tablet enviou pedidos de interrupção intermináveis
michaelbn
1

O fato de o Windows ser instalado recentemente não significa que ele não execute processos ou serviços em segundo plano. Monitore a máquina Windows com SNMP ou gerenciador de tarefas e tente descobrir se ela está realmente ociosa. Como Massimo disse, você também deve instalar drivers de pré-virtualização para o sistema operacional convidado. Eu nunca vi uma VM ociosa para obter recursos da CPU do host.

Mircea Vutcovici
fonte
0

Não sei nada sobre o KVM, mas no VMware isso pode acontecer se você não instalar as ferramentas do VMware na máquina virtual, para que não tenha drivers de dispositivo adequados para o hardware virtualizado e não consiga colocar sua CPU virtual em modo real ocioso quando na verdade não está fazendo nada, usando um loop inativo simples (o que realmente corresponde à CPU estar totalmente ocupada fazendo um loop em si mesmo).

Talvez exista algo semelhante às ferramentas VMware que você deve instalar na sua VM?

Massimo
fonte
-2

Primeiro, pare de comparar o Windows e o Linux ou espere que eles se comportem da mesma maneira. Eles são diferentes.

O Windows nunca está ocioso. Ele executa muitas tarefas em segundo plano e, de minha breve experiência com o Win 7, faz mais do que dizer XP. Uma coisa que ajudará a facilitar a carga é começar a desligar os serviços necessários, como o serviço de indexação.

John Gardeniers
fonte
1
O Linux também executa muitos "serviços" em segundo plano. E o pôster original confirmou que o Gerenciador de Tarefas mostra 1-2% da CPU usada no convidado do Windows.
Colin 't Hart
@ Colin, como todos sabemos, o Gerenciador de Tarefas é sobre cargas de CPU. Quem aqui não o viu reportar 98% de ociosidade e o sistema ainda não responde completamente à temperatura da CPU por causa da carga? Também estou bem ciente de que o Linux também executa tarefas em segundo plano, mas o que eu estava argumentando é que Linux e Windows são animais completamente diferentes. Aqueles que tentam comparar um ao outro sempre lutam mais do que aqueles que simplesmente aceitam que são diferentes e tratam cada um como uma entidade separada.
John Gardeniers
1
Isso não faz nenhum sentido.
Colin 't Hart
@ Colin, isso é provavelmente porque esse tipo de coisa está muito fora do seu campo. Qualquer Windows que esteja por um tempo entenderá o que escrevi sobre a carga da CPU. Quem trabalha com Windows e Linux deve entender o resto. Como você não trabalha no mesmo campo, eu realmente não espero que você entenda essas coisas, assim como eu não entenderia nada do Oracle.
John Gardeniers
O que faz você pensar que eu não trabalho no mesmo campo?
Colin 't Hart