Por que um guest do Ubuntu no VirtualBox roda muito, muito devagar?

174

Estou usando o Ubuntu 12.04 LTS atualmente como uma máquina host e virtualizei três máquinas:

  • um Xubuntu 12.04 convidado
  • 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 idéia?

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

    
por Giorgio 28.10.2012 / 20:26

6 respostas

36

Ouvi dizer que tem a ver com o facto de terem removido Unity 2D ou de alguma forma, a mudança para o 3D Unity só diminui o desempenho da VM devido à grande dependência do processamento da CPU, mais do que costumava ser necessário. O podcast Linux Outlaws falou sobre isso um pouco, mas eu esqueci o episódio.

Atualização: O problema é que o VirtualBox Guest Additions não fornece aceleração 3D no 12.10. Veja Ubuntu 12.10 incapaz de usar aceleração 3D. Não consegue criar DRM .

    
por Bret 28.10.2012 / 21:02
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 possui o Unity executado sob o LLVM, fazendo com que o código seja destinado à execução da GPU na CPU. É muito mais lento 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, "Not software rendered" e "Unity 3D supported" retornam "no" neste exemplo, o que significa que o Unity está usando LLVMpipe lento.

Como habilitar a aceleração 3D (somente no VirtualBox 4.2.x)

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

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

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

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

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

    /usr/lib/nux/unity_support_test -p
    

Se o Windows aparecer disppear , instale o Gerenciador de Configurações do CompizConfig e desabilite 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, em seguida, desmarque a opção Objeto Framebuffer. Se isso corrigir o problema, ele deverá estar imediatamente visível. Nenhuma reinicialização é necessária.
por Flimm 09.11.2012 / 12:43
11

Parece que os desenvolvedores de software do VirtualBox estão trabalhando em uma solução, mas ainda não está pronta - veja a postagem no fórum Discuta a versão 4.2.4 .

Há um tópico discutindo isso em quatro minutos Ubuntu 12.10 "praticamente" inutilizável

    
por Andrew B 29.10.2012 / 15:58
7

Eu não sei sobre as configurações da GUI necessárias para tornar o Unity utilizável dentro de uma VM, mas sei como ajustar as VMs no VirtualBox, KVM e outros. Eu nunca tive sorte em fazer o Unity funcionar bem em qualquer ambiente virtual. Nunca tentei muito, preferindo usar WM puro ou um DE baseado em LXDE.

Configurações mais detalhadas estão aqui: link

Resumo:

  • Os padrões do Vbox não são bons para versões do Ubuntu que gostam de uma GPU real.
  • Em HDs giratórios, pré-aloque todo o disco virtual. Em SSDs, não importa.
  • Aloque apenas o armazenamento de que você precisa. 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 mais RAM.
  • Use os drivers VirtIO para armazenamento e rede. Os hóspedes modernos do Linux suportam isso.
  • Para convidados do Windows, use os drivers SATA (armazenamento) e Intel PRO / 1000 (rede). É possível usar drivers do virtio no Windows, é um pouco mais difícil.
  • Habilite ACPI e AHCI para todos os convidados de 2003, WinXP e posterior.
  • As VMs de área de trabalho devem receber todos os 128 MB de exibição de vRAM
  • As VMs do servidor devem permanecer com 9 MB de vRAM; não desperdice.
  • Evite configurações de aceleração 2D e 3D, até que você tenha tudo funcionando da maneira que preferir. O Ubuntu / Unity faz coisas ruins quando isso é ativado. Pode trazer um Core i7 para o chão.

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

Boa sorte.

    
por JohnP 10.02.2013 / 20:16
4

Tive bons resultados ao voltar do Unity para o Fallback do GNOME. Você pode fazer isso apenas instalando o fallback de sessão do GNOME a partir do centro de software e, em seguida, escolhendo-o na tela de login.

veja: link para um tutorial detalhado aleatório

    
por Nanne 29.10.2012 / 15:16
1

Para ativar o suporte 3D, 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 vitualbox guest iso a partir de dispositivos e instale manualmente

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

Insira o 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 renderizado por software" e "Compatível com Unity 3D" ativado 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 por 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"/>

source: Como corrigir o desempenho lento o Ubuntu 13.04 rodando no virtualbox

    
por user223973 21.02.2014 / 03:58

Tags