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.