Por que um convidado do Ubuntu no VirtualBox é executado muito, muito devagar?

176

Atualmente, estou usando o Ubuntu 12.04 LTS como uma máquina host e virtualizei três máquinas:

  • um convidado do Xubuntu 12.04
  • um convidado do Windows 7
  • um convidado do Ubuntu 12.10

Todos os convidados têm as mesmas configurações padrão do VirtualBox, mas o Ubuntu 12.10 é mais lento!

A instalação levou 1h 40 min! (Normalmente, leva 40 minutos.) Agora é impossível usá-lo e todas as operações são muito, muito lentas.

Estou usando o VirtualBox versão 4.2.4.

Alguma ideia?

Por que é lento? E como posso torná-lo mais rápido?

Giorgio
fonte
Você já tentou mexer nas configurações? Você já tentou instalar edições de convidados?
usr12390
Sim, instalei adições de convidados, mas nada parece mudar ... o estranho é que instalei muitas máquinas virtuais com o ubuntu ou outra distro, mas apenas o Ubuntu 12.10 faz isso ... durante a instalação, deixo tudo configuração por padrão, como sempre; as outras 2 máquinas virtuais funcionam bem ...
Giorgio
2
A resposta de Flimm abaixo corrigiu o problema da lentidão para mim. askubuntu.com/a/214968/107015
JS.

Respostas:

36

Ouvi dizer que isso tem algo a ver com o fato de terem removido o Unity 2D ou, de alguma forma, a mudança para o 3D Unity apenas diminui o desempenho da VM devido à forte dependência da CPU em lidar com mais do que costumava ser. O podcast Linux Outlaws falou um pouco sobre isso, mas eu esqueço o episódio.

Atualização: o problema é que o Virtualbox Guest Additions não fornece aceleração 3D na versão 12.10. Veja Ubuntu 12.10 incapaz de usar a aceleração 3D. Falha ao criar DRM .

Bret
fonte
Estou pensando a mesma coisa, porque a única diferença entre outros PCs virtuais é que existe apenas a unidade 3D ... e não posso usar a aceleração 3D porque minha CPU é um modelo antigo sem essa função ... então , eu vou tomar um processador newone :)
Giorgio
11
Eu não acho que isso seja preciso - é a falta de suporte para o X Server 1.13 (do VirtualBox), e não o Unity que causa o problema. É uma distinção importante porque é fácil substituir o Unity (por exemplo, com o XFCE), mas não sei como fazer o downgrade da versão padrão do X Server.
Mzzzzzz # 30/12
11
Por que você diz que é um problema do X? Para mim, voltar ao gnome o corrigiu, por exemplo. Então foi um problema substituir a Unity, e não o X?
Nov12
@ marcopolo1010, o Xubuntu 12.10 possui o XServer 1.13 e apresenta bom desempenho no VirtualBox (definitivamente muito mais rápido que o Ubuntu 12.10). Portanto, deve ser uma questão de unidade.
Ignis
Além disso, se você estiver em um Mac, tente aumentar o número de CPUs que você fornece ao convidado. Isso me ajudou tremendamente! Aqui é onde eu tenho a fonte para isso: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Matt Wolfe
281

O Ubuntu 12.10 não inclui mais o Unity 2D , que foi implementado para plataformas que não podem fornecer aceleração 3D. Em vez disso, o Ubuntu 12.10 tem o Unity executado no LLVM, fazendo com que o código destinado à GPU seja executado na CPU. É muito mais lento do que usar a GPU.

Para verificar se o seu convidado do Ubuntu 12.10 está usando a aceleração 3D, execute este comando:

$ /usr/lib/nux/unity_support_test -p
Not software rendered:    no
Not blacklisted:          yes
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes

Unity 3D supported:       no

Como você pode ver, "Não foi processado por software" e "Compatível com o Unity 3D" ambos retornam "não" neste exemplo, o que significa que o Unity está usando LLVMpipe lento.

Como ativar a aceleração 3D (apenas VirtualBox 4.2.x)

Estas instruções destinam-se ao VirtualBox 4.2.4 ou 4.2.6, instalado no site do VirtualBox, não no repositório do Ubuntu. Versões futuras do VirtualBox podem corrigir esse problema automaticamente ou podem precisar de uma solução alternativa.

  1. Instale o VirtualBox Oracle VM VirtualBox Extension Pack.
  2. Crie uma instância do VirtualBox e instale o Ubuntu 12.10 nela.
  3. Instale alguns pacotes necessários para as adições de convidados:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Instale as adições de convidados clicando em Dispositivos, Instalar Adições de Convidados e executando este comando no diretório do CD-ROM:

    sudo ./VBoxLinuxAdditions.run
    
  5. Adicione o vboxvideodriver à instância executando:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Encerre a instância do VirtualBox.
  7. Abra as configurações da instância do Virtualbox, navegue até "Display" e marque "Ativar aceleração 3D".
  8. Inicialize seu convidado Ubuntu 12.10 e verifique se a aceleração 3D está funcionando, executando:

    /usr/lib/nux/unity_support_test -p
    

Se o Windows parecer desaparecer , instale o CompizConfig Settings Manager e desative o Framebuffer Object (FBO) na seção OpenGL:

  1. Instale o Gerenciador de configurações do CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Execute o Gerenciador de configurações do CompizConfig:

    ccsm
    
  3. Selecione a seção OpenGL e desmarque a opção Objeto Framebuffer. Se isso resolver o problema, ele deverá estar imediatamente visível. Nenhuma reinicialização é necessária.
Flimm
fonte
28
Essa é uma ótima solução e merece vários upvotes.
ζ--
4
Na minha nova instalação do Ubuntu 12.10 (usando o VirtualBox 4.2.4 no Mac OS X 10.6), isso definitivamente acelerou as coisas ... mas há muitos bugs no monitor. Janelas desaparecem, o lançador não aparece a menos que o traço está aberto, etc.
Benjamin Oakes
12
"Não é software renderizado" é um nome de propriedade muito confuso: S
Adam Harte
2
@ reprogrammer: Eu tive o mesmo problema. Experimente os pacotes adicionais do repositório Ubuntu, em vez dos mais recentes que acompanham o VirtualBox. Faça isso executando: sudo apt-get remove virtualbox-guest-additions(remove os que você instalou) sudo apt-get install virtualbox-guest-additions(instala os do repositório padrão) Em seguida, abra os drivers adicionais nas configurações (ou através de fontes de software> drivers adicionais nas versões mais recentes do Ubuntu) e selecione o óbvio .
labsin
6
Não consegui fazer isso funcionar com o VirtualBox 4.3.12. A solução para mim para o VirtualBox 4.3.12 é instalar uma versão mais recente do GuestAdditions, conforme referenciado aqui: virtualbox.org/ticket/12941 Especificamente, virtualbox.org/download/testcase/…
Gordon Glas
7

Não conheço as configurações da GUI necessárias para tornar o Unity utilizável em uma VM, mas sei como ajustar as VMs em virtualbox, KVM e outras. Nunca tive sorte em fazer o Unity funcionar bem em qualquer ambiente virtual. Nunca tentei muito, preferindo usar o WM puro ou um DE baseado em LXDE.

Configurações mais detalhadas estão aqui: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Resumo:

  • Os padrões do Vbox não são bons para os lançamentos do Ubuntu, como uma GPU real.
  • Ao girar HDDs, pré-aloque todo o disco virtual. Nos SSDs, isso não importa.
  • Aloque apenas o armazenamento necessário. Mantenha arquivos grandes em outro lugar, fora do vStorage.
  • Nunca aloque mais CPUs ou RAM do que deveria. 1 vCPU é provavelmente suficiente.
  • Deixe 1 GB de RAM para o HostOS. Não comprometa demais a RAM.
  • Use os drivers VirtIO para armazenamento e rede. Convidados modernos do Linux suportam isso.
  • Para convidados do Windows, use os drivers SATA (armazenamento) e Intel PRO / 1000 (rede). É possível usar drivers virtio no Windows, é um pouco mais difícil.
  • Habilite ACPI e AHCI para todos os convidados a partir de 2003, WinXP e posterior.
  • As VMs de desktop devem obter todos os 128 MB de vRAM de exibição
  • As VMs de servidor devem ficar com 9 MB de vRAM; não desperdice.
  • Evite configurações de aceleração 2D e 3D, até que tudo funcione da maneira que desejar. O Ubuntu / Unity faz coisas ruins quando isso está ativado. Pode trazer um Core i7 para o chão.

Existem muitas dicas de desempenho da GUI nas outras respostas. Provavelmente também são válidos. Essas mesmas dicas se aplicam ao KVM, VM-Player e outros hipervisores virtuais. Também funcionam para servidores.

Boa sorte.

JohnP
fonte
2
A postagem do blog que você vinculou é para o Ubuntu 12.04. O Ubuntu 12.10 é significativamente diferente, porque não inclui mais o Unity 2D e o Unity normal é processado pelo LLVMPipe quando não detecta a aceleração do hardware.
Flimm
2
Meu convidado do Ubuntu Server ficou muito mais rápido depois que eu mudei a memória de vídeo de ~ 8 MB para 128 MB. Eu o uso para o desenvolvimento do Rails.
4

Tive bons resultados voltando do Unity para o GNOME substituto. Você pode fazer isso instalando o GNOME-session-fallback no centro de software e escolhendo-o na tela de login.

veja: http://www.psychocats.net/ubuntu/classicgnome para um tutorial detalhado aleatório

Nanne
fonte
No Ubuntu 16.04, o nome do pacote é gnome-session-flashback. Essa é a única coisa que parece fazer a diferença no desempenho da interface do usuário para mim. obrigado!
Mustafa
1

Para ativar o 3D suportado, primeiro você precisará atualizar os cabeçalhos Linux

$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)
$ sudo apt-get autoremove
$ sudo apt-get install build-essential

Agora insira o vitualbox guest iso dos dispositivos e instale manualmente

$ cd /media
$ ls
$ cd username
$ ls
$ cd VBOX*
$ ls
$ sudo ./VBoxLinuxAdditions.run

Inserir vboxvideo em / etc / modules

$ sudo nano /etc/modules

Adicione "vboxvideo" no final do arquivo

loop
lp
vboxvideo

Reinicie a máquina

$ sudo reboot

Marque ”Não foi processado por software” e “Unity 3D suportado” estão ativados ou não após a reinicialização

$ /usr/lib/nux/unity_support_test -p

A próxima coisa que você quer fazer é aumentar a memória de vídeo. Procure pelo arquivo .vbox

$ nano /home/username/VirtualBox VMs/ubuntu/ubuntu.vbox

Substituir

<Display VRAMSize="128" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>

Para

<Display VRAMSize="256" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>

fonte: Como corrigir o desempenho lento do ubuntu 13.04 executando no virtualbox


fonte