Warum läuft ein Ubuntu-Gast in VirtualBox sehr, sehr langsam?


176

Ich verwende derzeit Ubuntu 12.04 LTS als Host-Maschine und habe drei Maschinen virtualisiert:

  • ein Xubuntu 12.04 Gast
  • ein Windows 7-Gast
  • ein Ubuntu 12.10 Gast

Alle Gäste haben die gleichen VirtualBox-Standardeinstellungen, aber Ubuntu 12.10 ist langsamer!

Die Installation dauerte 1h 40 min! (Normalerweise dauert es 40 Minuten.) Jetzt ist es unmöglich, es zu verwenden, und alle Vorgänge sind sehr, sehr langsam.

Ich benutze VirtualBox Version 4.2.4.

Irgendwelche Ideen?

Warum ist es langsam? Und wie kann ich es schneller machen?


Haben Sie versucht, mit Konfigurationen herumzuspielen? Haben Sie versucht, Gasteditionen zu installieren?
USR12390

Ja, ich habe Gast-Ergänzungen installiert, aber nichts scheint sich zu ändern ... das Seltsame ist, dass ich viele virtuelle Maschinen mit Ubuntu oder einer anderen Distribution installiert habe, aber nur Ubuntu 12.10 tut dies ... während der Installation habe ich alles gelassen Standardeinstellung wie immer; Die anderen 2 virtuellen Maschinen funktionieren einwandfrei ...
Giorgio

2
Flimms Antwort unten hat das Problem der Langsamkeit für mich behoben. askubuntu.com/a/214968/107015
JS.

Antworten:


36

Ich habe gehört, dass dies damit zu tun hat, dass Unity 2D entfernt wurde , oder dass die Umstellung auf 3D Unity die VM-Leistung nur verlangsamt, weil die CPU-Verarbeitung mehr als früher benötigt wurde. Der Linux Outlaws Podcast hat ein bisschen darüber gesprochen, aber ich vergesse die Episode.

Update: Das Problem ist, dass Virtualbox Guest Additions in 12.10 keine 3D-Beschleunigung bietet. Siehe Ubuntu 12.10, das die 3D-Beschleunigung nicht verwenden kann. DRM kann nicht erstellt werden .


Ich denke dasselbe, weil der einzige Unterschied zwischen anderen Virtual PCs darin besteht, dass es nur Unity 3D gibt ... und ich die 3D-Beschleunigung nicht verwenden kann, weil meine CPU ein altes Modell ohne diese Funktion ist ... also Ich nehme einen neuen Prozessor :)
Giorgio

1
Ich glaube nicht, dass dies korrekt ist - es liegt an der mangelnden Unterstützung für X Server 1.13 (von VirtualBox), nicht an Unity, die das Problem verursacht. Dies ist ein wichtiger Unterschied, da Unity leicht ersetzt werden kann (z. B. durch XFCE), ich jedoch nicht weiß, wie die Standardversion des X-Servers heruntergestuft werden kann.
Mzzzzzz

1
Warum ist das ein X-Problem? Für mich hat das Zurückfallen auf den Gnom zum Beispiel Abhilfe geschaffen. Es war also ein Problem, statt X Unity zu ersetzen?
Nanne

@ marcopolo1010, Xubuntu 12.10 hat XServer 1.13 und eine gute Leistung in VirtualBox (definitiv viel schneller als Ubuntu 12.10). Es muss also eine Frage der Einheit sein.
Ignis

Wenn Sie einen Mac verwenden, können Sie auch versuchen, die Anzahl der CPUs zu erhöhen, die Sie dem Gast geben. Das hat mir sehr geholfen! Hier ist, wo ich den Quellcode dafür habe: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Matt Wolfe

281

Ubuntu 12.10 enthält nicht mehr Unity 2D , das für Plattformen implementiert wurde, die keine 3D-Beschleunigung bieten. In Ubuntu 12.10 wird Unity stattdessen unter LLVM ausgeführt, sodass Code für die GPU auf der CPU ausgeführt wird. Es ist viel langsamer als die Verwendung der GPU.

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Ubuntu 12.10-Gast 3D-Beschleunigung verwendet:

$ /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

Wie Sie sehen, geben "Nicht gerenderte Software" und "Unity 3D unterstützt" in diesem Beispiel beide "Nein" zurück, was bedeutet, dass Unity langsames LLVMpipe verwendet.

So aktivieren Sie die 3D-Beschleunigung (nur VirtualBox 4.2.x)

Diese Anweisungen gelten für VirtualBox 4.2.4 oder 4.2.6, die von der VirtualBox-Website und nicht von Ubuntus Repo installiert wurden. Zukünftige Versionen von VirtualBox beheben dieses Problem möglicherweise automatisch oder erfordern eine andere Problemumgehung.

  1. Installieren Sie VirtualBox Oracle VM VirtualBox Extension Pack.
  2. Erstellen Sie eine VirtualBox-Instanz und installieren Sie Ubuntu 12.10 darauf.
  3. Installieren Sie einige erforderliche Pakete für die Gastzusätze:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Installieren Sie die Gastzusätze, indem Sie auf Geräte klicken, Gastzusätze installieren und den folgenden Befehl aus dem CD-ROM-Verzeichnis ausführen:

    sudo ./VBoxLinuxAdditions.run
    
  5. Fügen Sie der vboxvideoInstanz den Treiber hinzu, indem Sie Folgendes ausführen:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Fahren Sie die VirtualBox-Instanz herunter.
  7. Öffnen Sie die Einstellungen der Virtualbox-Instanz, navigieren Sie zu "Anzeige" und aktivieren Sie "3D-Beschleunigung aktivieren".
  8. Starten Sie Ihren Ubuntu 12.10-Gast und überprüfen Sie, ob die 3D-Beschleunigung funktioniert, indem Sie Folgendes ausführen:

    /usr/lib/nux/unity_support_test -p
    

Wenn Windows nicht mehr angezeigt wird , installieren Sie CompizConfig Settings Manager und deaktivieren Sie Framebuffer Object (FBO) im Abschnitt OpenGL:

  1. Installieren Sie den CompizConfig Settings Manager:

    sudo apt-get install compizconfig-settings-manager
    
  2. Führen Sie den CompizConfig Settings Manager aus:

    ccsm
    
  3. Wählen Sie den Abschnitt OpenGL aus und deaktivieren Sie die Option Framebuffer Object. Wenn dies das Problem behebt, sollte es sofort sichtbar sein. Es ist kein Neustart erforderlich.

28
Dies ist eine großartige Lösung, die mehrere positive Bewertungen verdient.
ζ--

4
Bei meiner Neuinstallation von Ubuntu 12.10 (mit VirtualBox 4.2.4 unter Mac OS X 10.6) hat sich das definitiv beschleunigt ... aber das Display weist viele Fehler auf. Windows verschwinden, der Launcher wird nicht angezeigt, es sei denn, der Dash ist geöffnet usw.
Benjamin Oakes

12
"Keine Software gerendert" ist ein sehr verwirrender Eigenschaftsname: S
Adam Harte

2
@reprogrammer: Ich hatte das gleiche Problem. Probieren Sie die zusätzlichen Pakete aus Ubuntus Repo aus, anstatt die neuesten, die mit VirtualBox geliefert werden. Führen Sie dazu Folgendes aus: sudo apt-get remove virtualbox-guest-additions(Dies entfernt diejenigen, die Sie installiert haben) sudo apt-get install virtualbox-guest-additions(Dies installiert diejenigen aus dem Standard-Repository.) Öffnen Sie anschließend die zusätzlichen Treiber in den Einstellungen (oder über Softwarequellen> zusätzliche Treiber in den neuesten Versionen von Ubuntu) und wählen Sie den offensichtlichen aus .
Labsin

6
Ich konnte das mit VirtualBox 4.3.12 nicht zum Laufen bringen. Die Lösung für mich für VirtualBox 4.3.12 ist eine neuere Version von GuestAdditions zu erhalten installieren , wie hier verwiesen: virtualbox.org/ticket/12941 Insbesondere virtualbox.org/download/testcase/...
Gordon Glas


7

Ich weiß nicht, welche GUI-Einstellungen erforderlich sind, damit Unity in einer VM verwendet werden kann, aber ich weiß, wie VMs unter virtualbox, KVM und anderen optimiert werden. Ich hatte noch nie Glück, dass Unity in einer virtuellen Umgebung gut funktioniert. Nie zu sehr versucht, lieber entweder reines WM oder ein LXDE-basiertes DE zu verwenden.

Weitere Einstellungen finden Sie hier: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Zusammenfassung:

  • Vbox-Standardeinstellungen sind nicht gut für Ubuntu-Versionen, die eine echte GPU mögen.
  • Ordnen Sie auf sich drehenden Festplatten die gesamte virtuelle Festplatte vorab zu. Auf SSDs spielt es keine Rolle.
  • Ordnen Sie nur den Speicher zu, den Sie benötigen. Bewahren Sie große Dateien an einem anderen Ort außerhalb von vStorage auf.
  • Weisen Sie niemals mehr CPUs oder RAM zu, als Sie sollten. 1 vCPU ist wahrscheinlich genug.
  • Belassen Sie 1 GB RAM für das HostOS. Überladen Sie den Arbeitsspeicher nicht.
  • Verwenden Sie die VirtIO-Treiber für Speicher und Netzwerk. Moderne Linux-Gäste unterstützen dies.
  • Verwenden Sie für Windows-Gäste die Treiber SATA (Speicher) und Intel PRO / 1000 (Netzwerk). Es ist möglich, virtio-Treiber unter Windows zu verwenden, es ist nur ein bisschen schwieriger.
  • Aktivieren Sie ACPI und AHCI für alle Gäste ab 2003, WinXP und höher.
  • Desktop-VMs sollten alle 128 MB Display-vRAM erhalten
  • Server-VMs sollten bei 9 MB vRAM bleiben. Verschwende es nicht.
  • Vermeiden Sie 2D- und 3D-Beschleunigungseinstellungen, bis alles andere nach Ihren Wünschen funktioniert. Ubuntu / Unity macht schlechte Dinge, wenn dies aktiviert ist. Es kann einen Core i7 auf den Boden bringen.

In den anderen Antworten finden Sie viele Tipps zur GUI-Leistung. Die sind wahrscheinlich auch gültig. Dieselben Tipps gelten für KVM, VM-Player und andere virtuelle Hypervisoren. Diese funktionieren auch für Server.

Viel Glück.


2
Der Blog-Eintrag, mit dem Sie verlinkt haben, ist für Ubuntu 12.04. Ubuntu 12.10 unterscheidet sich erheblich, da es Unity 2D nicht mehr enthält und normales Unity-Rendern über LLVMPipe erfolgt, wenn es keine Hardwarebeschleunigung erkennt.
Flimm

2
Mein Ubuntu Server-Gast wurde viel schneller, nachdem ich den Videospeicher von ~ 8 MB auf 128 MB geändert hatte. Ich benutze es für die Rails-Entwicklung.

4

Ich habe gute Ergebnisse erzielt, als ich von Unity zu Fallback GNOME zurückgekehrt bin. Sie können dies tun, indem Sie einfach GNOME-session-fallback aus dem Software-Center installieren und es dann auf dem Anmeldebildschirm auswählen.

Eine detaillierte Anleitung finden Sie unter: http://www.psychocats.net/ubuntu/classicgnome


In Ubuntu 16.04 lautet der Paketname gnome-session-flashback. Dies ist die einzige Sache, die für mich einen Unterschied in der UI-Leistung zu machen scheint. Vielen Dank!
Mustafa

1

Um die 3D-Unterstützung zu aktivieren, müssen Sie zunächst die Linux-Header aktualisieren

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

Fügen Sie nun vitualbox guest iso von Geräten ein und installieren Sie es manuell

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

Fügen Sie vboxvideo in / etc / modules ein

$ sudo nano /etc/modules

Fügen Sie am Ende der Datei "vboxvideo" hinzu

loop
lp
vboxvideo

Starten Sie die Maschine neu

$ sudo reboot

Aktivieren Sie nach dem Neustart "Nicht gerenderte Software" und "Unity 3D unterstützt"

$ /usr/lib/nux/unity_support_test -p

Das nächste, was Sie tun möchten, ist die Erhöhung des Videospeichers. Suchen Sie nach der VBOX-Datei

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

Ersetzen

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

Zu

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

Quelle: So beheben Sie langsame Leistung Ubuntu 13.04 in virtualbox ausgeführt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.