Como diminuir o uso da CPU ao executar o Virtual Box?

12

Estou enfrentando um problema com 100% de uso da CPU no meu sistema ao executar o VirtualBox. Aqui estão alguns detalhes adicionais:

Informações do meu sistema:

Nome da CPU 1: CPU dupla Intel (R) Pentium (R) T2310 a 1,46 GHz
CPU 1 nível 1 tamanho do cache: 32K cache de dados. Cache de instruções de 32K.

Tamanho do cache da CPU 1 nível 2: 1024K Cache unificado.
CPU 1 Mips: 2926.20
Nome da CPU 2: CPU dupla Intel (R) Pentium (R) T2310 a 1,46 GHz
CPU 2 nível 1 tamanho do cache: 32K cache de dados. Cache de instruções de 32K.

Tamanho do cache da CPU 2 nível 2: 1024K Cache unificado.

CPU 2 Mips: 2925.96
CPU de 64 bits? Sim!
Memória total: 2,0 GB
Troca total: 6141 MBytes


Minhas informações do sistema operacional:

Versão do Kubuntu OS: 11.04
Versão do kernel: 2.6.38-8-generic
Arco do kernel: i686
Shell padrão: / bin / bash


Minhas configurações da caixa virtual:

Tipo de SO: Windows XP
Memória de vídeo: 32 MB
Aceleração: 3D
Base Memory: 512 MB

Os Detalhes do Problema:

Bem, sempre que executo o Windows XP a partir do meu VirtualBox, vejo o uso da CPU em quase 100%. Tenho um sistema lento, mesmo que nenhum programa esteja sendo executado na minha versão hospedada do Windows XP.

Fiquei me perguntando se existe uma maneira de eu brincar com as configurações para melhorar um pouco o desempenho. Meu PC é relativamente rápido no meu sistema operacional Linux. Preciso saber se existem algumas dicas que posso seguir ao definir as configurações do meu VirtualBox para obter melhores resultados.

Todas as sugestões / idéias são muito apreciadas!

Compilando
fonte
Então você quer dizer que sua VM está funcionando lentamente ou seu sistema completamente? A CPU que você tem é um pouco fraca - então eu não me pergunto se chega a 100% quando você executa VMs.
Slhck 28/05
A CPU está lenta, mas eu tenho executado o XP no host SUSE no Athlon XP 2800+ sem problemas e 2 GIB de RAM, e esse sistema é muitas vezes mais rápido que o meu. Ele deve ser capaz de executar o VirtualBox e XP em ponto morto, sem problemas. Também +1 para uma boa lista de especificações relevantes do computador.
AndrejaKo
Tenho enfrentado o mesmo problema em vários sistemas operacionais no mesmo computador. Anteriormente, eu usei Linux Mint, Ubuntu, Slax, Fedora e tudo o que parece estava enfrentando problemas semelhantes com o uso da CPU. No entanto, acredito que se eu puder "ajustar corretamente" as configurações da minha VM, "talvez" consiga melhorar um pouco o desempenho.
CompilingCyborg
A solução temporária que estou usando no momento é um loop infinito que executa um comando bash para liberar pagecache, dentries e inodes a cada 10 segundos. Minha VM conseguiu respirar um pouco depois de pensar em usar essa técnica esquisita, embora não seja uma maneira adequada de fazer isso, mas sim um "hack".
CompilingCyborg
1
Infelizmente, o T2310 não possui as extensões de virtualização VT-x ( ark.intel.com/Product.aspx?id=32431 ) e, como resultado, o Virtualbox usará o software para capturar todas as chamadas de alto privilégio da CPU que o convidado fará, isso significa que o próprio Virtualbox estará usando mais energia da CPU para atender o sistema operacional convidado. Também ficaria curioso para ver se dar 1 GB de RAM ao sistema operacional convidado pode ajudá-lo a ficar ocioso melhor, pois não precisará fazer falhas de página caras com o host do Virtualbox com a mesma frequência ...
Mokubai

Respostas:

5

No meu comentário acima, o T2310 não possui extensões de virtualização (VT-x), conforme a folha de dados da CPU em http://ark.intel.com/Product.aspx?id=32431

A partir deste artigo Wikipedia , há três coisas básicas que serão causando uma degradação mensurável no desempenho da VM (e, portanto, um aumento no uso da CPU no host:

  • A tradução binária é usada para reescrever certas instruções, como POPF, que falhariam silenciosamente ou se comportariam de maneira diferente quando executadas acima do anel 0, tornando impossível a virtualização clássica de interceptar e emular. Para melhorar o desempenho, os blocos básicos traduzidos precisam ser armazenados em cache de maneira coerente que detecte a aplicação de patches de código (usados ​​nos VxDs, por exemplo), a reutilização de páginas pelo sistema operacional convidado ou mesmo o código de modificação automática.

  • Várias estruturas de dados principais usadas por um processador precisam ser sombreadas. Como a maioria dos sistemas operacionais usa memória virtual paginada e conceder acesso direto ao SO convidado à MMU significaria perda de controle pelo gerenciador de virtualização, parte do trabalho da MM86 x86 precisa ser duplicada no software para o SO convidado usando uma técnica conhecidas como tabelas de páginas de sombra. Isso envolve negar ao sistema operacional convidado qualquer acesso às entradas reais da tabela de páginas, interceptando tentativas de acesso e emulando-as no software.

  • Emulação de dispositivo de E / S: os dispositivos não suportados no sistema operacional convidado devem ser emulados por um emulador de dispositivo executado no sistema operacional host.

Um sistema operacional convidado tem um grande número de ouvidos para operações que exigem o uso de instruções privilegiadas necessárias e, geralmente, essas despesas gerais são fortemente atenuadas pelo uso das extensões de virtualização Intels VT-x e AMD-V da AMD. Seu processador não possui essas extensões e, portanto, todo o trabalho de captura e emulação causará alguma perda de desempenho.

Minhas recomendações seriam:

  • Para fornecer à máquina virtual a quantidade de memória necessária para minimizar a quantidade de paginação que precisa ser feita, talvez 1 GB ou mais, dependendo de suas cargas de trabalho.

  • Desative a aceleração 3D, pois todas as chamadas para o driver 3D talvez precisem ser empurradas pela camada de emulação e, portanto, podem ser caras no seu processador.

  • Instale o Virtualbox Guest Additions para o seu sistema operacional convidado, pois eles usarão drivers que suportam melhor o ambiente virtual.

  • Reduza a resolução da tela e as opções gráficas no seu sistema operacional convidado.

  • Mantenha o acesso à rede (Internet) em um nível razoável, as máquinas virtuais fortemente vinculadas à rede são caras, mesmo com o VT-x, e se beneficiam do VT-d (tecnologia de virtualização para E / S direcionada), que também não é suportado pelo seu processador.

Mokubai
fonte
2

Minha resposta está relacionada apenas ao título da pergunta, e não a outro texto da pergunta. Minha ênfase está no uso ocioso da CPU com mais convidados virtuais: (memória livre suficiente no host).

O uso da CPU causado pelo audiodg.exeprocesso no host do Windows ao executar o VirtualBox é maior que a carga do próprio convidado ocioso. Pode ser facilmente diminuído ou eliminado completamente desativando o Audio caixa de seleção nas configurações de convidados do Virtualbox na guia Áudio. (Pode ser desativado apenas em máquinas virt. Fechadas.)

O processo audiodg.exe consome aproximadamente 5% da CPU para um convidado, mas é uma carga importante em um laptop durante atividades ociosas típicas, como edição de origem e tem um grande impacto na frequência da CPU (redução de 80% para 40%), velocidade do ventilador e duração da bateria no laptop. Muitas das minhas máquinas virtuais em execução geralmente não precisam de som ou apenas algumas vezes. (Desativar áudio no sistema operacional convidado não teve efeito, nem pausa na máquina virtual, mas as configurações de convidado da caixa virtual são importantes.)

hynekcer
fonte