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


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 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?


174
2017-10-28 19:26


origine


Hai provato a fare confusione con le configurazioni? Hai provato a installare le edizioni degli ospiti? - usr12390
Sì, ho installato guest aggiunte, ma nulla sembra cambiare ... la cosa strana è che ho installato molte macchine virtuali con Ubuntu o altre distribuzioni, ma solo Ubuntu 12.10 fa questo ... durante l'installazione ho lasciato tutto impostazione di default, come sempre; le altre 2 macchine virtuali funzionano bene ... - Giorgio
La risposta di Flimm in basso ha risolto il problema della lentezza per me. askubuntu.com/a/214968/107015 - JS.


risposte:


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 gestisce più di quanto fosse necessario. Il Podcast Linux Outlaws ne ho parlato un po ', ma ho dimenticato l'episodio.

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


36
2017-10-28 20:02



Ho pensato la stessa cosa, perché l'unica differenza tra gli altri PC Virtuali, è che c'è solo l'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
Non penso che questo sia accurato - è mancanza di supporto per X Server 1.13 (di VirtualBox), non di Unity che causa il problema. È una distinzione importante perché è facile sostituire Unity (ad es. Con XFCE), ma non so come effettuare il downgrade della versione predefinita di X Server. - Mzzzzzz
Perché dici che è un problema X? Per me, ricadere su gnome l'ha risolto, per esempio. Quindi è stato un problema 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 unità. - ignis
Inoltre, se sei su un Mac puoi provare ad aumentare il numero di CPU che tu dai al guest. Questo mi ha aiutato moltissimo! Qui è dove ho preso la fonte per questo: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os - Matt Wolfe


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 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 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 essere necessari soluzioni alternative.

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

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

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

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

    /usr/lib/nux/unity_support_test -p
    

Se sembra Windows disppear, 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 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.

281
2017-11-09 11:43



Questa è una grande correzione e merita più upvotes. - hexafraction
Nella 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. Windows scompare, il programma di avvio non viene visualizzato a meno che il trattino non sia aperto, ecc. - Benjamin Oakes
"Non reso software" è un nome di proprietà molto confuso: S - Adam Harte
@reprogrammer: ho avuto lo stesso problema. Prova i pacchetti aggiuntivi dal repository di Ubuntu anziché quelli più recenti forniti con VirtualBox. Fai questo 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) Successivamente, aprire i driver aggiuntivi nelle impostazioni (o tramite sorgenti software> driver aggiuntivi sulle ultime versioni di Ubuntu) e selezionare quello ovvio. - labsin
Non ho potuto farlo funzionare con VirtualBox 4.3.12. La soluzione per me per VirtualBox 4.3.12 è di installare una versione più recente di GuestAdditions come indicato qui di seguito: virtualbox.org/ticket/12941 In particolare, virtualbox.org/download/testcase/... - Gordon Glas


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

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


11
2017-10-29 14:58





Non conosco le impostazioni della GUI necessarie per rendere Unity utilizzabile all'interno di una VM, ma so come regolare le VM in virtualbox, KVM e altre. Non ho mai avuto fortuna nel far sì che Unity funzioni bene in qualsiasi ambiente virtuale. Non ho mai provato troppo, preferendo usare puro WM 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: 

  • Le impostazioni predefinite di Vbox non sono adatte alle versioni di Ubuntu che come una vera GPU.
  • Sugli HDD rotanti, pre-allocare l'intero disco virtuale. Su SSD, non importa.
  • Assegna solo lo spazio di archiviazione necessario. Conserva file di grandi dimensioni altrove, al di fuori di vStorage.
  • Non assegnare mai più CPU o RAM di quanto dovresti. 1 vCPU è probabilmente abbastanza
  • Lasciare 1 GB di RAM per HostOS. Non sovrascrivere la RAM.
  • Usa il 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 128MB 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.

In bocca al lupo.


7
2018-02-10 19:16



Il post sul blog a cui ti sei collegato è per Ubuntu 12.04. Ubuntu 12.10 è significativamente diverso, poiché non include più Unity 2D e il rendering Unity normale su LLVMPipe quando non rileva l'accelerazione hardware. - Flimm
Il mio ospite di Ubuntu Server è diventato tanto più veloce dopo aver cambiato la memoria video da ~ 8 MB a 128 MB. Lo uso per lo sviluppo di Rails.


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

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


4
2017-10-29 14:16



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


Per abilitare il 3D supportato, pugno è necessario 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 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"/>

A

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

fonte: Come riparare le prestazioni lente di Ubuntu 13.04 in esecuzione in virtualbox


1
2018-02-21 02:58