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


176

Attualmente sto usando Ubuntu 12.04 LTS come macchina host e ho virtualizzato tre macchine:

  • un ospite Xubuntu 12.04
  • un ospite di Windows 7
  • un ospite 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?


Hai provato a fare confusione con le configurazioni? Hai provato a installare le edizioni guest?
usr12390,

Sì, ho installato aggiunte per gli ospiti, ma nulla sembra cambiare ... la cosa strana è che ho installato molte macchine virtuali con Ubuntu o altre distro ma solo Ubuntu 12.10 fa questo ... durante l'installazione ho lasciato tutto impostazione predefinita, come sempre; le altre 2 macchine virtuali funzionano bene ...
Giorgio,

2
La risposta di Flimm qui sotto ha risolto il problema della lentezza per me. askubuntu.com/a/214968/107015
JS.

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 le prestazioni della VM solo a causa della forte dipendenza dalla gestione della CPU più di una volta. Il podcast di Linux Outlaws ne ha parlato un po ', ma dimentico l'episodio.

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


Sto pensando la stessa cosa, perché l'unica differenza tra gli altri Virtual PC, è che c'è solo unità 3D ... e non posso usare l'accelerazione 3D perché la mia CPU è un vecchio modello senza questa funzione ... quindi , Prenderò un nuovo processore :)
Giorgio,

1
Non penso che questo sia accurato - è la mancanza di supporto per X Server 1.13 (di VirtualBox), non Unity che causa il problema. È una distinzione importante perché è facile sostituire Unity (ad esempio, con XFCE), ma non so come effettuare il downgrade della versione predefinita di X Server.
Mzzzzzz,

1
Perché dici che è un problema X? Per me, ricadere nello gnomo lo ha riparato per esempio. Quindi è stato un problema a sostituire Unity, piuttosto che X?
Nanne,

@ marcopolo1010, Xubuntu 12.10 ha XServer 1.13 e ha buone prestazioni in VirtualBox (decisamente molto più veloce di Ubuntu 12.10). Quindi deve essere un problema di Unity.
ignis,

Inoltre, se sei su un Mac puoi provare ad aumentare il numero di CPU che dai al guest. Questo mi ha aiutato moltissimo! Qui è dove ho ottenuto la fonte per questo: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Matt Wolfe,

281

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

Per verificare se il tuo guest Ubuntu 12.10 sta usando 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 reso software" e "Unity 3D supportato" restituiscono entrambi "no" in questo esempio, il che significa che Unity utilizza LLVMpipe lento.

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

Queste istruzioni sono destinate a 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 aver bisogno di una soluzione alternativa.

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

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

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

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

    /usr/lib/nux/unity_support_test -p
    

Se le finestre sembrano disppear , installare CompizConfig Gestione impostazioni e disattivare framebuffer Object (OSA) nella sezione OpenGL:

  1. Installa Gestione impostazioni CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Esegui Gestione impostazioni 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.

28
Questa è un'ottima soluzione e merita più voti.
ζ--

4
Sulla mia nuova installazione di Ubuntu 12.10 (usando VirtualBox 4.2.4 su Mac OS X 10.6), questo ha sicuramente accelerato le cose ... ma ci sono molti bug con il display. Le finestre scompaiono, il programma di avvio non viene visualizzato a meno che il trattino non sia aperto, ecc.
Benjamin Oakes,

12
"Not software rendering" è un nome di proprietà molto confuso: S
Adam Harte,

2
@programmatore: ho avuto lo stesso problema. Prova i pacchetti aggiuntivi dal repository di Ubuntu invece di quelli più recenti forniti con VirtualBox. Fallo eseguendo: sudo apt-get remove virtualbox-guest-additions(questo rimuove quelli che hai installato) sudo apt-get install virtualbox-guest-additions(questo installa quelli dal repository predefinito) Quindi apri i driver aggiuntivi nelle impostazioni (o attraverso fonti software> driver aggiuntivi sulle ultime versioni di Ubuntu) e seleziona quello ovvio .
LabSin

6
Non sono riuscito a farlo funzionare con VirtualBox 4.3.12. La soluzione per me per VirtualBox 4.3.12 è quella di ottenere l'installazione di una versione più recente di GuestAdditions, come indicato qui: virtualbox.org/ticket/12941 In particolare, virtualbox.org/download/testcase/…
Gordon Glas,


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 funzionare Unity in qualsiasi ambiente virtuale. Non ho mai provato troppo, preferendo usare WM puro o un DE basato su LXDE.

Impostazioni più dettagliate sono qui: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Sommario:

  • I valori predefiniti di Vbox non vanno bene per le versioni di Ubuntu che amano una vera GPU.
  • Sui dischi rigidi in rotazione, pre-allocare l'intero disco virtuale. Sugli SSD, non importa.
  • Allocare solo lo spazio di archiviazione necessario. Conservare file di grandi dimensioni altrove, all'esterno di vStorage.
  • Non allocare mai più CPU o RAM di quanto dovresti. 1 vCPU è probabilmente sufficiente.
  • Lascia 1 GB di RAM per HostOS. Non eseguire il commit eccessivo della RAM.
  • Utilizzare i driver VirtIO per archiviazione e reti. Gli ospiti Linux moderni supportano questo.
  • Per i guest Windows, utilizzare i driver SATA (archiviazione) e Intel PRO / 1000 (rete). È possibile utilizzare i driver virtio sotto Windows, è solo un po 'più difficile.
  • Abilita ACPI e AHCI per tutti gli ospiti dal 2003, WinXP e successivi.
  • Le VM desktop dovrebbero ottenere tutti i 128 MB di display vRAM
  • Le VM server dovrebbero rimanere con 9 MB di vRAM; non sprecarlo.
  • Evita le impostazioni di accel 2D e 3D, fino a quando tutto il resto funziona nel modo che preferisci. Ubuntu / Unity fa cose cattive quando è abilitato. Può portare a terra un Core i7.

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. Questi funzionano anche per i server.

In bocca al lupo.


2
Il post sul blog a cui sei collegato è per Ubuntu 12.04. Ubuntu 12.10 è significativamente diverso, perché non include più Unity 2D e Unity normale esegue il rendering su LLVMPipe quando non rileva l'accelerazione hardware.
Flimm,

2
Il mio guest Ubuntu Server è diventato molto più veloce dopo aver cambiato la memoria video da ~ 8 MB a 128 MB. Lo uso per lo sviluppo di Rails.

4

Ho ottenuto buoni risultati tornando da Unity al fallback GNOME. Puoi farlo semplicemente installando GNOME-session-fallback dal centro software, e poi scegliendolo nella schermata di accesso.

vedi: http://www.psychocats.net/ubuntu/classicgnome per un howto dettagliato casuale


In Ubuntu 16.04 il nome del pacchetto è gnome-session-flashback. Questa è l'unica cosa che sembra fare la differenza nelle mie prestazioni. Grazie!
Mustafa,

1

Per abilitare il 3D supportato, per prima cosa dovrai aggiornare le intestazioni di Linux

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

Ora inserisci iso guest vitualbox dai dispositivi e installalo 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

Controllare "Non reso software" 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 riparare Ubuntu 13.04 a basse prestazioni in esecuzione in virtualbox

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.