Perché un guest Ubuntu in VirtualBox funziona molto, molto lentamente?

174

Uso attualmente Ubuntu 12.04 LTS come macchina host e ho virtualizzato tre macchine:

  • un ospite Xubuntu 12.04
  • un ospite di Windows 7
  • un ospite di Ubuntu 12.10

Tutti gli ospiti hanno le stesse impostazioni predefinite di VirtualBox, ma Ubuntu 12.10 è più lento!

L'installazione ha richiesto 1h 40 min! (Normalmente, ci vogliono 40 minuti.) Ora è impossibile usarlo e tutte le operazioni sono molto, molto lente.

Sto usando VirtualBox versione 4.2.4.

Qualche idea?

Perché è lento? E come posso renderlo più veloce?

    
posta Giorgio 28.10.2012 - 20:26

6 risposte

36

Ho sentito che ha qualcosa a che fare con il fatto che hanno rimosso Unity 2D , o in qualche modo il passaggio a 3D Unity rallenta solo le prestazioni della VM a causa della forte dipendenza dalla CPU che gestiva di più di prima. Il podcast Linux Outlaws ne ha parlato un po ', ma ho dimenticato l'episodio.

Aggiornamento: il problema è con VirtualBox Guest Additions che non fornisce l'accelerazione 3D in 12.10. Vedi Ubuntu 12.10 incapace di usare l'accelerazione 3D. Non riesce a creare DRM .

    
risposta data Bret 28.10.2012 - 21:02
281

Ubuntu 12.10 non include più Unity 2D , che è stato implementato per piattaforme che non possono fornire l'accelerazione 3D. Invece, Ubuntu 12.10 ha Unity eseguito in LLVM, rendendo il codice destinato alla GPU eseguita sulla CPU. È molto più lento rispetto all'utilizzo della GPU.

Per verificare se il tuo ospite di Ubuntu 12.10 utilizza l'accelerazione 3D, esegui questo 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

Come puoi vedere, "Non software renderizzato" e "Unity 3D supportato" restituiscono entrambi "no" in questo esempio, il che significa che Unity utilizza LLVMpipe lenta.

Come abilitare l'accelerazione 3D (solo VirtualBox 4.2.x)

Queste istruzioni sono intese per VirtualBox 4.2.4 o 4.2.6, installate dal sito Web di VirtualBox, non dal repository di Ubuntu. Le versioni future di VirtualBox potrebbero risolvere questo problema automaticamente o potrebbero essere necessari soluzioni alternative.

  1. Installa VirtualBox Oracle VirtualBox Extension Pack.
  2. Crea un'istanza VirtualBox e installa Ubuntu 12.10 su di esso.
  3. Installa alcuni pacchetti richiesti per le aggiunte guest:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Installa le aggiunte guest facendo clic su Dispositivi, Installa aggiunte guest ed esegui questo comando dalla directory del CD-ROM:

    sudo ./VBoxLinuxAdditions.run
    
  5. Aggiungi il driver vboxvideo all'istanza eseguendo:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Arresta l'istanza di VirtualBox.
  7. Apri le impostazioni dell'istanza Virtualbox, vai su "Visualizza" e seleziona "Abilita accelerazione 3D".
  8. Avvia il tuo ospite Ubuntu 12.10 e verifica che l'accelerazione 3D funzioni funzionando:

    /usr/lib/nux/unity_support_test -p
    

Se Windows sembra sparire , installa CompizConfig Settings Manager e disabilita Framebuffer Object (FBO) nella sezione OpenGL:

  1. Installa Gestione impostazioni CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Esegui il Gestore impostazioni di CompizConfig:

    ccsm
    
  3. Seleziona la sezione OpenGL e quindi deseleziona l'opzione Oggetto Framebuffer. Se questo risolve il problema, dovrebbe essere immediatamente visibile. Non è richiesto il riavvio.
risposta data Flimm 09.11.2012 - 12:43
11

Sembra che gli sviluppatori del software VirtualBox stiano lavorando su una soluzione, ma non è ancora pronta - vedi post sul forum Discuti la versione 4.2.4 .

C'è una discussione su questo argomento in fourm post Ubuntu 12.10 "praticamente" inutilizzabile

    
risposta data Andrew B 29.10.2012 - 15:58
7

Non conosco le impostazioni della GUI necessarie per rendere Unity utilizzabile all'interno di una VM, ma so come ottimizzare le VM in virtualbox, KVM e altre. Non ho mai avuto fortuna nel far sì che Unity funzioni bene in qualsiasi ambiente virtuale. Mai provato troppo, preferendo usare puro WM o un DE basato su LXDE.

Le impostazioni più dettagliate sono qui: link

Riepilogo:

  • Le impostazioni predefinite di Vbox non sono adatte alle versioni di Ubuntu che come una vera GPU.
  • Sugli HDD rotanti, pre-alloca l'intero disco virtuale. Sugli SSD, non importa.
  • Assegna solo lo spazio di archiviazione necessario. Conserva file di grandi dimensioni altrove, al di fuori di vStorage.
  • Non allocare mai più CPU o RAM di quanto si dovrebbe. 1 vCPU è probabilmente sufficiente.
  • Lascia 1GB di RAM per HostOS. Non sovraccaricare la RAM.
  • Utilizza i driver VirtIO per Archiviazione e Rete. I moderni ospiti Linux supportano questo.
  • Per i guest Windows, utilizzare i driver SATA (storage) e Intel PRO / 1000 (network). È possibile utilizzare i driver virtio sotto Windows, è solo un po 'più difficile.
  • Abilita ACPI e AHCI per tutti gli ospiti dal 2003, WinXP e versioni successive.
  • Le VM desktop dovrebbero avere tutti i 128 MB di vRAM di visualizzazione
  • Le VM server dovrebbero rimanere con 9 MB di vRAM; non sprecarlo.
  • Evita le impostazioni di accelerazione 2D e 3D, fino a quando tutto il resto non funziona come preferisci. Ubuntu / Unity fa cose cattive quando è abilitato. Può portare un Core i7 a terra.

Ci sono molti suggerimenti sulle prestazioni della GUI nelle altre risposte. Anche quelli sono probabilmente validi. Questi stessi suggerimenti si applicano a KVM, VM-Player e altri hypervisor virtuali. Funzionano anche per i server.

Buona fortuna.

    
risposta data JohnP 10.02.2013 - 20:16
4

Ho ottenuto buoni risultati spostandomi da Unity al GNOME fallback. Puoi farlo installando GNOME-session-fallback dal centro del software e quindi scegliendolo nella schermata di accesso.

vedi: per un howto dettagliata casuale

    
risposta data Nanne 29.10.2012 - 15:16
1

Per abilitare il 3D supportato, pugno dovrai aggiornare le intestazioni linux

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

Ora inserisci vitualbox guest iso dai dispositivi e installa manualmente

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

Inserisci vboxvideo in / etc / modules

$ sudo nano /etc/modules

Aggiungi "vboxvideo" alla fine del file

loop
lp
vboxvideo

Riavvia la macchina

$ sudo reboot

Controlla "Non software reso" e "Unity 3D supportato" sono abilitati o meno dopo il riavvio

$ /usr/lib/nux/unity_support_test -p

La prossima cosa che vuoi fare è aumentare la memoria video. Cerca il file .vbox

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

Sostituire

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

Per

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

fonte: Come correggere le prestazioni lente ubuntu 13.04 in esecuzione in virtualbox

    
risposta data user223973 21.02.2014 - 03:58

Leggi altre domande sui tag