Dlaczego gość Ubuntu w VirtualBox działa bardzo, bardzo wolno?

176

Obecnie używam Ubuntu 12.04 LTS jako maszyny hosta i zwirtualizowałem trzy maszyny:

  • gość Xubuntu 12.04
  • gość Windows 7
  • gość Ubuntu 12.10

Wszyscy goście mają te same ustawienia domyślne VirtualBox, ale Ubuntu 12.10 działa wolniej!

Instalacja zajęła 1h 40 min! (Zwykle zajmuje to 40 minut.) Teraz nie można go używać, a wszystkie operacje są bardzo, bardzo wolne.

Używam VirtualBox w wersji 4.2.4.

Jakieś pomysły?

Dlaczego jest wolny? Jak mogę to zrobić szybciej?

Giorgio
źródło
Czy próbowałeś bawić się w konfiguracje? Czy próbowałeś zainstalować wersje dla gości?
usr12390
Tak, zainstalowałem dodatki dla gości, ale wydaje się, że nic się nie zmienia ... dziwne jest to, że zainstalowałem wiele maszyn wirtualnych z Ubuntu lub inną dystrybucją, ale robi to tylko Ubuntu 12.10 ... podczas instalacji zostawiam wszystko ustawienie domyślne, jak zawsze; pozostałe 2 maszyny wirtualne działają dobrze ...
Giorgio
2
Poniższa odpowiedź Flimm naprawiła dla mnie problem powolności. askubuntu.com/a/214968/107015
JS.

Odpowiedzi:

36

Słyszałem, że ma to coś wspólnego z faktem, że usunęli Unity 2D , lub w jakiś sposób przejście na 3D Unity tylko spowalnia wydajność VM z powodu dużego uzależnienia od procesora obsługującego więcej niż kiedyś. Linux Outlaws podcast rozmawialiśmy o tym trochę, ale zapomnę odcinka.

Aktualizacja: Problem polega na tym, że dodatki gości Virtualbox nie zapewniają akceleracji 3D w 12.10. Zobacz, jak Ubuntu 12.10 nie może korzystać z akceleracji 3D. Nie można zbudować DRM .

Bret
źródło
Myślę o tym samym, ponieważ jedyną różnicą między innymi wirtualnymi komputerami PC jest to, że istnieje tylko jedność 3D ... i nie mogę użyć akceleracji 3D, ponieważ mój procesor to stary model bez tej funkcji ... więc , Wezmę nowy procesor :)
Giorgio
1
Nie sądzę, że jest to poprawne - brak wsparcia dla X Server 1.13 (VirtualBox), a nie Unity, który powoduje problem. To ważne rozróżnienie, ponieważ łatwo jest zastąpić Unity (np. XFCE), ale nie wiem, jak obniżyć domyślną wersję X Server.
Mzzzzzz
1
Dlaczego mówisz, że to problem X? Dla mnie powrót do gnome naprawił to na przykład. Więc to był problem z zastąpieniem Jedności, a nie X?
Nanne
@ marcopolo1010, Xubuntu 12.10 ma XServer 1.13 i ma dobrą wydajność w VirtualBox (zdecydowanie znacznie szybszym niż Ubuntu 12.10). Więc to musi być problem Jedności.
ignis
Ponadto, jeśli używasz komputera Mac, możesz spróbować zwiększyć liczbę procesorów, które dajesz gościowi. To mi ogromnie pomogło! Oto źródło tego: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Matt Wolfe
281

Ubuntu 12.10 nie zawiera już Unity 2D , która została zaimplementowana na platformach, które nie mogą zapewnić akceleracji 3D. Zamiast tego w Ubuntu 12.10 Unity działa pod LLVM, dzięki czemu kod przeznaczony dla GPU działa na CPU. Jest znacznie wolniejszy niż przy użyciu GPU.

Aby sprawdzić, czy gość Ubuntu 12.10 używa akceleracji 3D, uruchom następujące polecenie:

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

Jak widać, w tym przykładzie zarówno „Nie renderowane”, jak i „Unity 3D obsługiwane” zwracają „nie”, co oznacza, że ​​Unity używa wolnej LLVMpipe.

Jak włączyć akcelerację 3D (tylko VirtualBox 4.2.x)

Te instrukcje są przeznaczone dla VirtualBox 4.2.4 lub 4.2.6, instalowanego ze strony VirtualBox, a nie z repozytorium Ubuntu. Przyszłe wersje VirtualBox mogą automatycznie rozwiązać ten problem lub mogą wymagać innego obejścia.

  1. Zainstaluj VirtualBox Oracle VM VirtualBox Extension Pack.
  2. Utwórz instancję VirtualBox i zainstaluj na niej Ubuntu 12.10.
  3. Zainstaluj niektóre wymagane pakiety dla dodatków gości:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Zainstaluj dodatki dla gości, klikając Urządzenia, Zainstaluj dodatki dla gości i uruchamiając to polecenie z katalogu CD-ROM:

    sudo ./VBoxLinuxAdditions.run
    
  5. Dodaj vboxvideosterownik do instancji, uruchamiając:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Zamknij instancję VirtualBox.
  7. Otwórz ustawienia instancji Virtualbox, przejdź do „Wyświetl” i zaznacz „Włącz przyspieszenie 3D”.
  8. Uruchom gościa Ubuntu 12.10 i sprawdź, czy działa przyspieszenie 3D, uruchamiając:

    /usr/lib/nux/unity_support_test -p
    

Jeśli wydaje się, że okna znikają , zainstaluj CompizConfig Settings Manager i wyłącz Framebuffer Object (FBO) w sekcji OpenGL:

  1. Zainstaluj Menedżera ustawień CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Uruchom CompizConfig Settings Manager:

    ccsm
    
  3. Wybierz sekcję OpenGL, a następnie odznacz opcję Framebuffer Object. Jeśli to rozwiąże problem, powinien być natychmiast widoczny. Ponowne uruchomienie nie jest wymagane.
Flimm
źródło
28
Jest to świetna poprawka i zasługuje na wiele pozytywnych opinii.
ζ--
4
W mojej nowej instalacji Ubuntu 12.10 (przy użyciu VirtualBox 4.2.4 na Mac OS X 10.6) zdecydowanie przyspieszyło to ... ale jest wiele błędów z wyświetlaniem. Windows znika, program uruchamiający nie pokazuje się, chyba że kreska jest otwarta itp.
Benjamin Oakes
12
„Nie renderowane oprogramowanie” to bardzo myląca nazwa właściwości: S
Adam Harte,
2
@reprogrammer: Miałem ten sam problem. Wypróbuj dodatkowe pakiety z repozytorium Ubuntu zamiast najnowszych, które są dostarczane z VirtualBox. Zrób to, uruchamiając: sudo apt-get remove virtualbox-guest-additions(spowoduje to usunięcie tych, które zainstalowałeś) sudo apt-get install virtualbox-guest-additions(spowoduje to zainstalowanie tych z domyślnego repozytorium) Następnie otwórz dodatkowe sterowniki w ustawieniach (lub poprzez źródła oprogramowania> dodatkowe sterowniki w najnowszych wersjach Ubuntu) i wybierz oczywisty .
labsin
6
Nie mogłem tego zrobić z VirtualBox 4.3.12. Rozwiązaniem dla mnie w VirtualBox 4.3.12 jest zainstalowanie nowszej wersji GuestAdditions, o której mowa tutaj: virtualbox.org/ticket/12941 W szczególności virtualbox.org/download/testcase/…
Gordon Glas
7

Nie wiem o ustawieniach GUI potrzebnych do tego, aby Unity był użyteczny w maszynie wirtualnej, ale wiem, jak dostroić maszyny wirtualne pod virtualbox, KVM i innymi. Nigdy nie miałem szczęścia, dzięki czemu Unity działał dobrze w dowolnym środowisku wirtualnym. Nigdy nie próbowałem zbyt mocno, woląc używać czystego WM lub DE opartego na LXDE.

Bardziej szczegółowe ustawienia znajdują się tutaj: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Podsumowanie:

  • Domyślne ustawienia Vbox nie są dobre dla wersji Ubuntu, które lubią prawdziwy GPU.
  • Na wirujących dyskach twardych wstępnie przydziel cały dysk wirtualny. Na dyskach SSD nie ma to znaczenia.
  • Przydziel tylko potrzebne miejsce. Przechowuj duże pliki w innym miejscu, poza vStorage.
  • Nigdy nie przydzielaj więcej procesorów lub pamięci RAM niż powinieneś. Prawdopodobnie 1 vCPU .
  • Pozostaw 1 GB pamięci RAM dla systemu HostOS. Nie przepełniaj pamięci RAM.
  • Użyj sterowników VirtIO do przechowywania i sieci. Wspierają go nowi goście Linuxa.
  • W przypadku gości systemu Windows użyj sterowników SATA (pamięć masowa) i Intel PRO / 1000 (sieć). Możliwe jest użycie sterowników virtio pod Windows, jest to tylko trochę trudniejsze.
  • Włącz ACPI i AHCI dla wszystkich gości od 2003 roku, WinXP i późniejszych.
  • Maszyny wirtualne dla komputerów stacjonarnych powinny uzyskać wszystkie 128 MB wyświetlanej pamięci vRAM
  • Maszyny wirtualne serwera powinny pozostać z 9 MB pamięci vRAM; nie marnuj tego.
  • Unikaj ustawień przyspieszania 2D i 3D, dopóki wszystko inne nie będzie działało tak, jak lubisz. Ubuntu / Unity robi złe rzeczy, gdy jest to włączone. Może sprowadzić Core i7 na ziemię.

Istnieje wiele wskazówek dotyczących wydajności GUI w innych odpowiedziach. Te też prawdopodobnie są ważne. Te same wskazówki dotyczą KVM, VM-Player i innych wirtualnych hiperwizorów. Te działają również dla serwerów.

Powodzenia.

JohnP
źródło
2
Wpis na blogu, do którego linkujesz, dotyczy systemu Ubuntu 12.04. Ubuntu 12.10 różni się znacząco, ponieważ nie zawiera już Unity 2D, a normalne Unity renderuje przez LLVMPipe, gdy nie wykrywa przyspieszenia sprzętowego.
Flimm
2
Mój gość Ubuntu Server stał się znacznie szybszy po zmianie pamięci wideo z ~ 8 MB na 128 MB. Używam go do rozwoju Railsów.
4

Miałem dobre wyniki, przechodząc z Unity do rezerwowego GNOME. Możesz to zrobić, po prostu instalując awarię sesji GNOME z centrum oprogramowania, a następnie wybierając ją na ekranie logowania.

zobacz: http://www.psychocats.net/ubuntu/classicgnome, aby uzyskać losowe szczegółowe instrukcje

Nanne
źródło
W Ubuntu 16.04 nazwa pakietu to gnome-session-flashback. To jedyna rzecz, która wydaje mi się mieć wpływ na wydajność interfejsu użytkownika. dzięki!
Mustafa
1

Aby włączyć obsługę 3D, najpierw musisz zaktualizować nagłówki Linux-a

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

Teraz włóż ISOO Guest Vitalbox z urządzeń i zainstaluj ręcznie

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

Wstaw vboxvideo do / etc / modułów

$ sudo nano /etc/modules

Dodaj „vboxvideo” na końcu pliku

loop
lp
vboxvideo

Uruchom ponownie maszynę

$ sudo reboot

Sprawdź, czy „Nie renderowane oprogramowanie” i „Unity 3D obsługiwane” są włączone, czy nie po ponownym uruchomieniu

$ /usr/lib/nux/unity_support_test -p

Następną rzeczą, którą chcesz zrobić, jest zwiększenie pamięci wideo. Poszukaj pliku .vbox

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

Zastąpić

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

Do

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

źródło: Jak naprawić niską wydajność Ubuntu 13.04 działającą w virtualbox


źródło