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:

My System Information:

CPU 1 name: Intel(R) Pentium(R) Dual CPU T2310 @ 1.46GHz
CPU 1 level 1 cache size: 32K Data cache. 32K Instruction cache.

CPU 1 level 2 cache size: 1024K Unified cache.
CPU 1 Mips: 2926.20
CPU 2 name: Intel(R) Pentium(R) Dual CPU T2310 @ 1.46GHz
CPU 2 level 1 cache size: 32K Data cache. 32K Instruction cache.

CPU 2 level 2 cache size: 1024K Unified cache.

CPU 2 Mips: 2925.96
64 bit CPU? Yes!
Total memory: 2.0 GB
Total swap: 6141 MBytes


My Operating System Information:

Kubuntu OS version: 11.04
Kernel version: 2.6.38-8-generic
Kernel arch: i686
Default shell: /bin/bash


My Virtual Box Settings:

OS Type: Windows XP
Video Memory: 32 MB
Acceleration: 3D
Base Memory: 512 MB

Os detalhes do problema:

Bem, toda vez que eu executo o Windows XP a partir do meu VirtualBox, vejo o uso da CPU em quase 100%. Eu experimento um sistema lento, mesmo se nenhum programa estiver sendo executado na minha versão hospedada do Windows XP.

Eu queria saber se existe uma maneira de eu brincar com as configurações para que eu possa melhorar um pouco o desempenho. Meu PC é relativamente rápido no meu sistema operacional Linux. Eu preciso saber se há algumas dicas que eu possa seguir ao configurar as configurações do meu VirtualBox para que eu possa alcançar melhores resultados.

Todas as sugestões / ideias são muito apreciadas!

    
por CompilingCyborg 28.05.2011 / 09:48

2 respostas

5

A elaboração do meu comentário acima do T2310 carece de extensões de virtualização (VT-x) de acordo com a folha de dados do seu processador no link

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

  • Binary translation is used to rewrite certain instructions, like POPF, that would otherwise fail silently or behave differently when executed above ring 0 making the classic trap-and-emulate virtualization impossible. To improve performance, the translated basic blocks need to be cached in a coherent way that detects code patching (used in VxDs for instance), the reuse of pages by the guest OS, or even self-modifying code.

  • A number of key data structures used by a processor need to be shadowed. Because most operating systems use paged virtual memory, and granting the guest OS direct access to the MMU would mean loss of control by the virtualization manager, some of the work of the x86 MMU needs to be duplicated in software for the guest OS using a technique known as shadow page tables. This involves denying the guest OS any access to the actual page table entries by trapping access attempts and emulating them instead in software.

  • I/O device emulation: Unsupported devices on the guest OS must be emulated by a device emulator that runs in the host OS.

Um sistema operacional convidado tem um grande escândalo para operações que exigem o uso de instruções privilegiadas que são necessárias e normalmente essas sobrecargas são strongmente mitigadas pelo uso das extensões de virtualização Intelli VT-x e AMD-V AMD. Seu processador não possui essas extensões e, portanto, todo o trabalho de captura e emulação causará alguma perda de desempenho.

As 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 podem ter que ser enviadas pela camada de emulação e, portanto, podem ser caras em seu processador.

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

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

  • Mantenha o acesso à rede (Internet) a um nível razoável, máquinas virtuais strongmente conectadas à rede são caras mesmo com o VT-x e também se beneficiam do VT-d (Tecnologia de Virtualização para I / O Direcionada), que também é não suportado pelo seu processador.

por 28.05.2011 / 19:49
2

Minha resposta está relacionada apenas ao título da pergunta e não ao 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.exe process no host do Windows ao executar o VirtualBox é maior do que a carga do próprio usuário iddle. Ele pode ser facilmente diminuído ou completamente desativado ao desativar a caixa de seleção Áudio nas configurações do convidado do Virtualbox na guia Áudio. (Pode ser desativado somente em máquinas virtuais fechadas.)

O processo audiodg.exe consome aproximadamente 5% da CPU para um convidado, mas é importante carregar em um laptop durante atividades ociosas típicas, como edição de código-fonte, e tem um grande impacto na frequência da CPU (diminuir 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 às vezes. (Desativar o áudio no sistema operacional convidado não teve efeito, nem pausa da máquina virtual, mas as configurações de convidado do VirtualBox são importantes.)

    
por 21.07.2013 / 01:26