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

174

Używam obecnie Ubuntu 12.04 LTS jako hosta i zwirtualizowałem trzy maszyny:

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

Wszyscy goście mają te same domyślne ustawienia VirtualBox, ale Ubuntu 12.10 jest wolniejszy!

Instalacja zajęła 1h 40 min! (Normalnie trwa to 40 minut.) Teraz nie można go użyć, a wszystkie operacje są bardzo, bardzo powolne.

Używam VirtualBox wersji 4.2.4.

Jakieś pomysły?

Dlaczego jest wolny? A jak mogę zrobić to szybciej?

    
zadawane Giorgio 28.10.2012, 20:26
źródło

6 odpowiedzi

36

Słyszałem, że ma to coś wspólnego z faktem, że usunęli Unity 2D , lub jakoś przejście na 3D Unity tylko spowalnia działanie maszyny wirtualnej ze względu na duże uzależnienie od obsługi procesora bardziej niż kiedyś. Podcast o Linux Outlaws mówił o tym nieco, ale zapominam o odcinku.

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

    
odpowiedział Bret 28.10.2012, 21:02
źródło
281

Ubuntu 12.10 nie zawiera już Unity 2D , który został zaimplementowany dla platform, które nie mogą zapewnić przyspieszenia 3D. Zamiast tego Ubuntu 12.10 uruchamia Unity pod LLVM, tworząc kod przeznaczony dla GPU uruchamianego na CPU. Jest znacznie wolniejszy niż użycie GPU.

Aby sprawdzić, czy Twój gość Ubuntu 12.10 korzysta z akceleracji 3D, uruchom tę komendę:

$ /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ć, "Nie wyrenderowane oprogramowanie" i "Wsparcie Unity 3D" zwracają "nie" w tym przykładzie, co oznacza, że ​​Unity używa powolnego LLVMpipe.

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

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

  1. Zainstaluj pakiet VirtualBox Oracle VM VirtualBox.
  2. Utwórz instancję VirtualBox i zainstaluj na niej Ubuntu 12.10.
  3. Zainstaluj kilka wymaganych pakietów dla dodatków gości:

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

    sudo ./VBoxLinuxAdditions.run
    
  5. Dodaj sterownik vboxvideo 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 akcelerację 3D".
  8. Uruchom gościa Ubuntu 12.10 i sprawdź, czy przyspieszenie 3D działa:

    /usr/lib/nux/unity_support_test -p
    

Jeśli okna wydają się disppear , zainstaluj Menedżera ustawień CompizConfig i wyłącz obiekt bufora ramki (FBO) w sekcji OpenGL:

  1. Zainstaluj Menedżera ustawień CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Uruchom Menedżera ustawień CompizConfig:

    ccsm
    
  3. Wybierz sekcję OpenGL, a następnie usuń zaznaczenie opcji Obiekt bufora ramki. Jeśli to rozwiąże problem, powinno być natychmiast widoczne. Nie jest wymagane ponowne uruchomienie.
odpowiedział Flimm 09.11.2012, 12:43
źródło
11

Wygląda na to, że twórcy oprogramowania VirtualBox pracują nad rozwiązaniem, ale nie jest ono jeszcze gotowe - zobacz wpis na forum Omów wydanie 4.2.4 .

Istnieje wątek omawiający to w cztery miesiące po Ubuntu 12.10 "praktycznie" bezużyteczny

    
odpowiedział Andrew B 29.10.2012, 15:58
źródło
7

Nie wiem, jakie ustawienia GUI byłyby potrzebne, aby Unity można było używać w VM, ale wiem, jak dostroić maszyny wirtualne w VirtualBox, KVM i innych. Nigdy nie miałem szczęścia, że ​​Unity działa dobrze w każdym środowisku wirtualnym. Nigdy nie próbowałem zbyt mocno, woląc używać czystego WM lub DE opartego na LXDE.

Więcej szczegółowych ustawień znajdziesz tutaj: link

Podsumowanie:

  • Domyślne ustawienia Vbox nie są dobre dla wydań Ubuntu, które przypominają prawdziwy procesor graficzny.
  • Na wirujących dyskach twardych wstępnie alokuj cały dysk wirtualny. Na dyskach SSD nie ma 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ś. 1 vCPU prawdopodobnie wystarczy.
  • Pozostaw 1 GB pamięci RAM dla HostOS. Nie przesyłaj pamięci RAM.
  • Skorzystaj z sterowników Virtio dla pamięci masowej i sieci. Współcześni użytkownicy Linuksa to wspierają.
  • Dla gości systemu Windows użyj sterowników SATA (pamięć masowa) i Intel PRO / 1000 (sieć). Możliwe jest użycie sterowników virtio w systemie Windows, jest to tylko trochę trudniejsze.
  • Włącz ACPI i AHCI dla wszystkich gości od 2003, WinXP i nowszych.
  • Maszyny wirtualne na komputery stacjonarne powinny uzyskać wszystkie 128 MB pamięci graficznej
  • Maszyny wirtualne serwera powinny pozostać z 9 MB pamięci vRAM; nie marnuj go.
  • Unikaj akceleracji 2D i 3D, dopóki wszystko nie będzie działać tak, jak lubisz. Ubuntu / Unity robi złe rzeczy, gdy jest to włączone. Może przynieść Core i7 na ziemię.

W innych odpowiedziach jest wiele wskazówek dotyczących interfejsu GUI. Te są prawdopodobnie również ważne. Te same wskazówki dotyczą KVM, VM-Player i innych wirtualnych hipernadzorców. Te działają również dla serwerów.

Powodzenia.

    
odpowiedział JohnP 10.02.2013, 20:16
źródło
4

Miałem dobre wyniki, cofając się z Unity do awaryjnego GNOME. Możesz to zrobić, instalując ponownie sesję zastępczą GNOME z centrum oprogramowania, a następnie wybierając ją na ekranie logowania.

zobacz: link dla losowego szczegółowego howto

    
odpowiedział Nanne 29.10.2012, 15:16
źródło
1

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

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

Teraz wstaw gościa vitualbox iso z urządzeń i zainstaluj ręcznie

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

Wstaw vboxvideo do / etc / modules

$ sudo nano /etc/modules

Dodaj "vboxvideo" na końcu pliku

loop
lp
vboxvideo

Uruchom ponownie komputer

$ sudo reboot

Zaznacz "Nie renderowane oprogramowanie" i "Obsługa Unity 3D" są włączone lub 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

Zamień

<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 uruchomiony w wirtualnej skrzynce

    
odpowiedział user223973 21.02.2014, 03:58
źródło

Przeczytaj inne pytania na temat tagów