dlaczego Virtualbox używa 15-20% CPU, gdy VM jest zatrzymana?

10

Uruchamiam VirtualBox 3.1 na Ubuntu z gościem Win XP. Zdziwiłem się, że kiedy wstrzymuję maszynę wirtualną (jej ekran się wyszarza), VirtualBox nadal wykorzystuje 15-20% procesora hosta.

Czy to jest normalne zachowanie?

Czy istnieje sposób, aby tego uniknąć? (Bez zapisywania stanu maszyny wirtualnej i wychodzenia z VirtualBox.)

Dzięki za wszelkie spostrzeżenia!

~ Lara

laramichaels
źródło

Odpowiedzi:

8

Aby zmniejszyć wykorzystanie procesora VirtualBox przez cały czas, skorzystaj z tego dziwnego hacka.

Utwórz nową maszynę wirtualną i nie instaluj na niej systemu operacyjnego. Powiedz VirtualBox, że uruchomi DOS i da mu absolutnie minimalne zasoby. Nie instaluj O / S. Uruchom go, pozwól mu na błąd podczas uruchamiania i zminimalizuj.

Podczas uruchamiania prawdziwego systemu operacyjnego na drugiej maszynie wirtualnej zobaczysz, że zużycie bezczynnego procesora Virtualbox spada do 3-5%.

Pomysł z Jed4czar: http://ubuntuforums.org/showthread.php?s=58e862a814e65eb96f8fe8389b615366&t=838073&page=2

EDYCJA: Aby bezpośrednio odpowiedzieć na twoje pytania

dlaczego Virtualbox używa 15-20% CPU, gdy VM jest zatrzymana?

To jest błąd. Zawsze zużywa 15-20% więcej procesora, niż jest to konieczne, gdy jedna maszyna wirtualna jest uruchomiona, chyba że użyty zostanie włożony hack.

Czy istnieje sposób, aby tego uniknąć?

Zobacz hack powyżej.

kmarsh
źródło
miło wiedzieć, że vbox przydziela możliwe biblioteki procesorów podczas uruchamiania
Diskilla
ooooch to też naprawiło dla mnie! Wielkie dzieki. Aby uzyskać informacje, korzystam z systemu Windows 8.1, VM jest centos i konsumuje w czasie bezczynności około 15% procesora. VBox v4.3.12
Sebas
Niesamowite, to wciąż problem.
kmarsh
4

Wypróbowałem opisany powyżej hack na maszynie wirtualnej DOS, ale bez powodzenia (uruchamianie gości Ubuntu 12.04 na MacBooku Pro z OS X). Próbowałem także zmian parametrów jądra wymienionych w wątku Oracle , znowu bez zmian. Bez względu na to, co zrobiłem, moi goście wydawali się jeść 15-20% procesora. Zauważyłem jednak, że jeden gość, któremu przydzieliłem 2 procesory, nie żuł 15-20% - zachowywał się zgodnie z oczekiwaniami.

Rzeczywiście, kiedy przestawiłem pozostałe na 2 procesory, problem zniknął. Z poprzednich doświadczeń wiem, że przejście na 2 procesory włącza także opcję IO APIC w sekcji płyty głównej, więc podejrzewałem, że to naprawdę interesująca zmiana. To znaczy ten:

IOAPIC włączony

Pamiętaj, że musisz wyłączyć urządzenie, aby zmienić to ustawienie, w przeciwnym razie będzie wyszarzone. Po włączeniu go dla gości i ponownym uruchomieniu nie miało znaczenia, że ​​mam 1 lub więcej procesorów, wykorzystanie procesora 15-20% zniknęło, więc pomyślałem, że podzielę się tutaj moim rozwiązaniem.

Adam C.
źródło
1

Miałem ten sam problem na Windows 7 Quad z systemem Oracle 5 na maszynie wirtualnej.

Postępując zgodnie z radą Adama, sprawdziłem opcję Enabled IO APIC, ale bezskutecznie. Podążyłem więc za pomysłem kmarsha, którego próba zajęła prawdopodobnie mniej niż minutę, a użycie procesora spadło z 15-20% do 4-5%.

Zastosowano następujące ustawienia: Nazwa: Hack pamięci, Typ: Inne, Wersja: DOS. Rozmiar pamięci: 4 MB, dysk twardy: Nie dodawaj wirtualnego dysku twardego. Kliknij [Utwórz]. Uruchamiając maszynę wirtualną, prosi o dysk startowy, użyłem: Host Drive 'D:', kliknij [Start]. Maszyna wirtualna stwierdza: „FATAL: Nie można odczytać z nośnika rozruchowego! System został zatrzymany”. W tym momencie użycie procesora spadło, więc zminimalizowałem okno. Uruchomienie drugiej maszyny wirtualnej nie ma znaczenia.

proszę usuń mnie
źródło
Wygląda na to, że ten problem jest tak złożony, że nikt go nie poprawi.
kmarsh
0

Wystąpił problem z VirtualBox na maszynie P4 2-procesorowej z ram 3gig działającym na hoście CentOS 5.5.

Nie spotkałem się z tym problemem na maszynie i720 8cpu z 8 koncertami z 64-bitowym Win7. Uruchomiłem 3 maszyny wirtualne VMWare plus VirtualBox, wszystkie z pamięcią 2-gig, i nie miałem żadnych problemów z procesorem.

Sugeruje to, że problemem jest albo uruchomienie na „małej” maszynie, albo na hoście Linux.

Twoje rozwiązanie działało dobrze, dzięki.

Zauważam, że te wcześniejsze posty mają rok, a mój VirtualBox to najnowsza wersja 4.0.4, więc Oracle nie naprawił jeszcze tego błędu.

Wayne Linton
źródło
2
Spodziewałbym się, że ten spadek wydajności jest związany z twarzą, że nowsze procesory mają VT-x i podobne, aby umożliwić wirtualizację wspomaganą sprzętowo, co oznaczałoby, że program VirtualBox nie wykonuje pracy, a tym samym zmniejsza zużycie procesora. P4 prawdopodobnie nie miałby technologii VT-x, dlatego musiałby tłumaczyć wywołania systemowe za pomocą oprogramowania i w rezultacie zużywać więcej procesora.
Mokubai
To musiało być już naprawione. gdy korzystam z hosta Ubuntu i gościa XP z uruchomionym VirtualBox v4.3.6, kiedy wstrzymuję gościa, użycie procesora spada poniżej 1%
Seeker
0

Pozostałe odpowiedzi nie wyjaśniają ani nie naprawiają błędu dla mnie (host Debiana, wstrzymany gość Ubuntu). Oracle ma sekcję dotyczącą tego:

Niektórzy goście systemu Linux mogą powodować duże obciążenie procesora, nawet jeśli system-gość wydaje się być bezczynny. Może to być spowodowane wysoką częstotliwością czasową jądra gościa. Niektóre dystrybucje Linuksa, na przykład Fedora, dostarczają jądro Linuksa skonfigurowane dla częstotliwości taktowania 1000 Hz. Zalecamy rekompilację jądra gościa i wybranie częstotliwości taktowania 100 Hz.

Jądra systemu Linux dostarczane z systemem Red Hat Enterprise Linux, a także jądra powiązanych dystrybucji systemu Linux, takich jak CentOS i Oracle Linux, obsługują dzielnik parametrów jądra = N. Dlatego takie jądra obsługują niższą częstotliwość taktowania bez ponownej kompilacji. Sugerujemy dodanie dzielnika parametrów jądra = 10, aby wybrać częstotliwość zegara jądra gościa wynoszącą 100 Hz.

Źródło: Goście systemu Linux mogą powodować wysokie obciążenie procesora

mayeulk
źródło