Por que o Virtualbox usa 15-20% de CPU quando a VM é pausada?

10

Eu executo o VirtualBox 3.1 no Ubuntu com um convidado do Win XP. Eu notei para minha surpresa que quando eu pausar a VM (sua tela fica cinza), o VirtualBox continua usando 15-20% da CPU do host.

Isso é um comportamento normal?

Existe uma maneira de evitar isso? (Sem salvar o estado da VM e sair do VirtualBox.)

Obrigado por qualquer insight!

~ lara

laramichaels
fonte

Respostas:

8

A fim de diminuir o uso da CPU VirtualBox em todos os momentos, recorrer a este hack estranho.

Crie uma nova máquina virtual e não instale um sistema operacional nela. Diga ao VirtualBox que ele executará o DOS e dará a ele os recursos mínimos absolutos. Não instale um O / S. Execute-o, deixe-o errar na inicialização e minimize-o.

Ao executar seu O / S real em uma segunda VM, você verá sua utilização ociosa da CPU do Virtualbox cair para 3-5%.

Idéia de jed4czar: http://ubuntuforums.org/showthread.php?s=58e862a814e65eb96f8fe8389b615366&t=838073&page=2

EDITAR: Para responder às suas perguntas diretamente

Por que o Virtualbox usa 15-20% de CPU?   quando a VM está pausada?

É um bug. Ele está sempre usando 15-20% mais de CPU do que o necessário, quando qualquer VM está ativa, a menos que o hack fornecido seja usado.

Existe uma maneira de evitar isso?

Veja hackear acima.

kmarsh
fonte
É bom saber que o vbox aloca possibliy fontes de cpu usadas na inicialização
Diskilla
ooooh ele consertou para mim também! Incrível, obrigado. Para informações, estou executando o windows 8.1, a VM é centos e estava consumindo em tempo ocioso em torno de 15% cpu. VBox v4.3.12
Sebas
Incrível isso ainda é um problema.
kmarsh
4

Eu tentei o hack descrito acima com o DOS VM, mas sem sucesso (executando o Ubuntu 12,04 convidados em um MacBook Pro com OS X). Eu também tentei as mudanças de parâmetro do kernel mencionadas no Encadeamento Oracle , novamente sem alteração. Não importa o que eu fiz, meus convidados pareciam comer 15-20% de CPU cada. No entanto, notei que o convidado que eu recebi para atribuir 2 CPUs não estava mastigando 15-20% - ele estava se comportando como esperado.

Com certeza, quando eu troquei os outros para 2 CPUs, o problema desapareceu. De experiência anterior, eu sei que a mudança para 2 CPUs também permite a opção IO APIC na seção da placa-mãe, então eu suspeitava que essa fosse a mudança realmente interessante. Isto é, este aqui:

IOAPIC Enabled

Note que você tem que desligar a máquina para alterar esta configuração, caso contrário, ela ficará esmaecida. Depois que eu habilitei isso nos convidados e reiniciei, não importava se eu tivesse 1 ou mais CPUs, a utilização de 15-20% da CPU desapareceria, então pensei em compartilhar minha solução aqui.

Adam C
fonte
1

Eu tive o mesmo problema em uma caixa do Windows 7 Quad executando o Oracle 5 na VM.

Seguindo o conselho de Adam, verifiquei a opção Enabled IO APIC, mas sem sucesso. Então, eu segui a ideia do kmarsh, que levou menos de um minuto para tentar, e o uso do processador caiu de 15-20% para 4-5%.

As configurações usadas foram, Nome: Memory Hack, Type: Other, Version: DOS. Tamanho da memória: 4MB, Hard Drive: Não adicione um disco rígido virtual. Clique em [Criar]. Iniciando a VM pede um disco de inicialização, eu usei: Host Drive 'D:', clique em [Iniciar]. Estados da máquina virtual: "FATAL: não foi possível ler do meio de inicialização! Sistema interrompido". Nesse ponto, o uso da CPU caiu, então eu minimizei a janela. Iniciar uma segunda VM não faz diferença.

please delete me
fonte
Parece que esse problema é tão complexo que ninguém vai consertá-lo.
kmarsh
0

Eu experimentei este problema VirtualBox em uma máquina P4 de 2 cpu com 3gigs ram executando o host CentOS 5.5.

Eu não tive esse problema em uma máquina i720 8cpu com 8 GB rodando o Win7 de 64 bits. Eu executei 3 máquinas virtuais VMWare, além do VirtualBox, todas com memória de 2 GB, e não tive nenhum problema de CPU.

Isso sugere que a execução em uma máquina "pequena" ou em um host Linux é o problema.

Sua solução funcionou bem, obrigado.

Eu notei que esses posts anteriores têm um ano, e meu VirtualBox é a versão mais recente da versão 4.0.4, então a Oracle ainda não corrigiu esse bug.

Wayne Linton
fonte
2
Eu esperaria que esta penalidade de desempenho estivesse associada à cara que as CPUs mais novas têm VT-x e similares para permitir virtualização assistida por hardware, o que significaria que o programa VirtualBox não está fazendo o trabalho e, portanto, menor uso da CPU. Um P4 provavelmente não teria a tecnologia VT-x e, portanto, teria que traduzir as chamadas do sistema via software e usar mais CPU como resultado.
Mokubai
Isso deve ter sido corrigido agora. Usando o host Ubuntu e o convidado XP rodando o VirtualBox v4.3.6 quando eu pausar o convidado, o uso da CPU cai abaixo de 1%
Seeker