Jak zmniejszyć użycie procesora podczas uruchamiania Virtual Box?

12

Mam problem ze 100% wykorzystaniem procesora w moim systemie podczas uruchamiania VirtualBox. Oto kilka dalszych szczegółów:

Informacje o moim systemie:

Nazwa procesora 1: Intel (R) Pentium (R) Dual CPU T2310 @ 1.46GHz
Rozmiar pamięci podręcznej procesora 1 poziomu 1: 32 KB pamięci podręcznej danych. Pamięć podręczna instrukcji 32 KB.

Rozmiar pamięci podręcznej na poziomie 2 procesora 1: 1024 k Unified cache.
CPU 1 Mips: 2926.20
Nazwa CPU 2: Intel (R) Pentium (R) Dual CPU T2310 @ 1.46GHz
Rozmiar pamięci podręcznej procesora 2 poziomu 1: 32 KB pamięci podręcznej danych. Pamięć podręczna instrukcji 32 KB.

Rozmiar pamięci podręcznej poziomu 2 procesora 2: 1024 k ujednoliconej pamięci podręcznej.

CPU 2 Mips: 2925.96
64-bitowy procesor? Tak!
Całkowita pamięć: 2,0 GB
Całkowita zamiana: 6141 MB


Informacje o moim systemie operacyjnym:

Wersja systemu operacyjnego Kubuntu: 11.04
Wersja jądra: 2.6.38-8-ogólny
Łuk jądra: i686
Domyślna powłoka: / bin / bash


Ustawienia mojej skrzynki wirtualnej:

Typ systemu operacyjnego: Windows XP
Pamięć wideo: 32 MB
Przyspieszenie:
Podstawowa pamięć 3D : 512 MB

Szczegóły problemu:

Za każdym razem, gdy uruchamiam Windows XP z VirtualBox, widzę użycie procesora na prawie 100%. System działa powoli, nawet jeśli na mojej hostowanej wersji systemu Windows XP nie były uruchomione żadne programy.

Zastanawiałem się, czy jest sposób na zabawę z ustawieniami, dzięki czemu mogę nieco poprawić wydajność. Mój komputer działa stosunkowo szybko pod moim systemem operacyjnym Linux. Muszę wiedzieć, czy są jakieś wskazówki, które mogę zastosować podczas konfigurowania ustawień VirtualBox, aby uzyskać lepsze wyniki.

Wszelkie sugestie / pomysły są mile widziane!

CompilingCyborg
źródło
Masz na myśli, że twoja maszyna wirtualna działa wolno, czy w ogóle twój system? Procesor, który masz, jest raczej słaby - więc nie zastanawiałbym się, czy osiągnie 100% po uruchomieniu maszyn wirtualnych.
slhck
Procesor jest wolny, ale korzystałem z XP na hoście SUSE na Athlonie XP 2800+ bez problemów i 2 GIB pamięci RAM, a ten system jest wielokrotnie szybszy niż mój. Powinien być w stanie uruchomić VirtualBox i XP w trybie neutralnym bez żadnych problemów. Również +1 za ładną listę odpowiednich specyfikacji komputera.
AndrejaKo
Napotkałem ten sam problem w kilku systemach operacyjnych na tym samym komputerze. Wcześniej korzystałem z Linux Mint, Ubuntu, Slax, Fedora i wydaje mi się, że miałem podobne problemy z użyciem procesora. Uważam jednak, że jeśli mogę „poprawnie” dostosować ustawienia mojej maszyny wirtualnej, „mogę” być w stanie nieco poprawić wydajność.
CompilingCyborg
Tymczasowym rozwiązaniem, którego obecnie używam, jest nieskończona pętla, która uruchamia polecenie bash w celu zwolnienia pamięci podręcznej, dentries i i-węzłów co 10 sekund. Moja maszyna wirtualna była w stanie trochę odetchnąć, gdy pomyślałem o użyciu tej dziwacznej techniki, chociaż nie jest to właściwy sposób, ale raczej „hack”.
CompilingCyborg
1
Niestety T2310 nie ma rozszerzeń wirtualizacji VT-x ( ark.intel.com/Product.aspx?id=32431 ), w wyniku czego Virtualbox będzie używać oprogramowania do przechwytywania wszystkich wywołań procesora o wysokim stopniu uprzywilejowania, które wykona gość, co będzie oznaczać że sam Virtualbox będzie zużywał więcej mocy procesora do obsługi systemu-gościa. Byłbym także ciekawy, czy podanie 1 GB pamięci RAM dla systemu gościa może pomóc w bezczynności, ponieważ nie będzie musiał tak często
powodować

Odpowiedzi:

5

Opracowując mój komentarz powyżej T2310 brakuje rozszerzeń wirtualizacji (VT-x) zgodnie z arkuszem danych procesora na stronie http://ark.intel.com/Product.aspx?id=32431

Z tego artykułu w Wikipedii są trzy podstawowe rzeczy, które spowodują mierzalne pogorszenie wydajności maszyny wirtualnej (a tym samym wzrost zużycia procesora na hoście:

  • Translacja binarna służy do przepisywania niektórych instrukcji, takich jak POPF, które w przeciwnym razie zawiodłyby cicho lub działałyby inaczej po wykonaniu powyżej pierścienia 0, uniemożliwiając klasyczną wirtualizację typu „pułapka i emulacja”. Aby poprawić wydajność, przetłumaczone podstawowe bloki muszą być buforowane w spójny sposób, który wykrywa łatanie kodu (używane na przykład w VxD), ponowne użycie stron przez system gościa, a nawet kod samodmodyfikujący.

  • Wiele kluczowych struktur danych używanych przez procesor musi zostać ukrytych. Ponieważ większość systemów operacyjnych używa stronicowanej pamięci wirtualnej, a przyznanie systemowi-gościowi bezpośredniego dostępu do MMU oznaczałoby utratę kontroli przez menedżera wirtualizacji, niektóre prace MMU x86 muszą być powielone w oprogramowaniu dla systemu-gościa przy użyciu techniki znane jako tabele stron w tle. Wiąże się to z odmową systemowi-gościowi dostępu do rzeczywistych pozycji w tablicy stron poprzez wychwytywanie prób dostępu i emulowanie ich w oprogramowaniu.

  • Emulacja urządzenia we / wy: Nieobsługiwane urządzenia w systemie gościa muszą być emulowane przez emulator urządzenia działający w systemie hosta.

System operacyjny gościa ma dużą podsłuch w operacjach, które wymagają użycia uprzywilejowanych instrukcji, które są wymagane i zwykle koszty te są znacznie złagodzone przez użycie rozszerzeń wirtualizacyjnych Intels VT-x i AMD-V AMD. Twój procesor nie ma tych rozszerzeń, więc cała praca przechwytywania i emulacji spowoduje pewną utratę wydajności.

Moje rekomendacje to:

  • Aby zapewnić maszynie wirtualnej tyle pamięci, ile potrzeba, aby zminimalizować liczbę stronicowania, które należy wykonać, być może 1 GB lub więcej, w zależności od obciążeń.

  • Wyłącz przyspieszenie 3D, ponieważ wszystkie połączenia ze sterownikiem 3D mogą wymagać przepchnięcia przez warstwę emulacji, co może kosztować procesor.

  • Zainstaluj dodatki Virtualbox Guest dla systemu operacyjnego gościa, ponieważ będą one korzystać ze sterowników, które lepiej obsługują środowisko wirtualne.

  • Zmniejsz rozdzielczość ekranu i opcje graficzne w systemie operacyjnym gościa.

  • Utrzymuj dostęp do sieci (Internetu) na rozsądnym poziomie, maszyny wirtualne silnie związane z siecią są drogie nawet przy VT-x i korzystają również z VT-d (Technologia wirtualizacji dla ukierunkowanych operacji we / wy), która również nie jest obsługiwana przez twój procesor.

Mokubai
źródło
2

Moja odpowiedź dotyczy wyłącznie tytułu pytania, a nie innego tekstu pytania. Kładę nacisk na bezczynne użycie procesora przy większej liczbie wirtualnych gości: (wystarczająca ilość wolnej pamięci na hoście).

Zużycie procesora spowodowane przez audiodg.exeproces na hoście Windows podczas uruchamiania VirtualBox jest wyższe niż obciążenie samego gościa bezczynnego. Można go łatwo zmniejszyć lub całkowicie usunąć, wyłączając pole wyboru Audio w ustawieniach gościa Virtualbox na karcie Audio. (Można wyłączyć tylko przy zamkniętej maszynie.)

Proces audiodg.exe zużywa około 5% procesora dla jednego gościa, ale jest to ważne obciążenie laptopa podczas typowych bezczynności, takich jak edycja źródła, i ma duży wpływ na częstotliwość procesora (spadek z 80% do 40%), prędkość wentylatora i żywotność baterii na laptopie. Wiele z moich działających maszyn wirtualnych zwykle nie potrzebuje dźwięku lub tylko czasami. (Wyłączenie dźwięku w systemie-gościu nie miało żadnego wpływu, ani pauza maszyny wirtualnej, ale ustawienia gościa Virtualbox są ważne).

hynekcer
źródło