Dlaczego bezczynna maszyna wirtualna z systemem Windows używa tak dużo procesora?

12

Mam 2 maszyny wirtualne działające jako goście na platformie wirtualizacji KVM działającej na systemie Ubuntu 10.04. Jedna maszyna wirtualna to system Ubuntu 10.04, druga to system Windows 7. Gdy oba komputery są całkowicie wylogowane, komputer z systemem Linux używa 1% procesora, Windows 45-50%, według góry. Wykresy w virt-manager wydają się to potwierdzać. Na obrazie Win7 nie ma nic, co działałoby w tle; jest tak świeży, jak tylko może być.

Dlaczego maszyna wirtualna z systemem Windows używa znacznie więcej niż maszyna wirtualna z systemem Linux, gdy oba są wylogowane i pracują na biegu jałowym?

Edytować:

Od samego początku zainstalowałem gościa z pamięcią masową i sterownikami sieci. Nie sądzę, że brakuje mi innych sterowników, czy się mylę ?.

Według menedżera zadań gościa jest to rzeczywiście bezczynność. Taskman zajmuje około 1 lub 2% procesora gościa, ale nie ma innych procesów zajmujących czas procesora.

Jeff Shattock
źródło

Odpowiedzi:

4

Jaką wersję QEMU-KVM używasz?

Widzieliśmy ten problem w wersjach 0.12.3 i starszych, ale nie wydaje się, aby był to zbyt duży problem w wersji 0.12.4. Sprawdź także, czy wygaszacze ekranu są uruchomione. Jeśli używasz połączenia VNC, może ono tam działać, a wykorzystanie procesora nie będzie w maszynie wirtualnej - zostanie wykorzystane przez proces KVM.

trevoro
źródło
1
0.12.3 Zbuduję w wersji 0.12.4 i zobaczę, czy to zniknie.
Jeff Shattock
1
I rzeczywiście tak się stało. Windows znalazł sterownik dla wirtualnego procesora Qemu 0.12.4, a ten problem zniknął po ponownym uruchomieniu gościa.
Jeff Shattock
7

Wiem, że moja odpowiedź pojawia się po 100 latach, ale: w celu zapoznania się z nimi w przyszłości, zobacz tutaj:

http://forum.proxmox.com/threads/5770-Windows-guest-high-context-switch-rate-when-idle

Jeśli tak, to oto rozwiązanie: http://support.microsoft.com/kb/895980

Zmniejszyło to użycie procesora gościa Win2K3 R2 (gdy gość był bezczynny) na moim hoście x86_64 kvm z ~ 30% -40% do 6%

Eugen
źródło
2
Wątek w Proxmox zawiera przydatne informacje: usunięcie wirtualnego sprzętu tabletu USB z maszyny wirtualnej z systemem Windows spowoduje spadek liczby przełączników kontekstu. Moja bezczynna maszyna wirtualna z systemem Windows spadła z 20% procesora hosta do 5% procesora hosta.
Colin 't Hart
Dzięki, pracowałeś dla mnie. Wirtualne urządzenie tabletu wysyłało niekończące się żądania przerwania
michaelbn,
1

Fakt, że system Windows jest świeżo zainstalowany, nie oznacza, że ​​nie uruchamia procesów ani usług w tle. Monitoruj komputer z systemem Windows za pomocą SNMP lub menedżera zadań i spróbuj dowiedzieć się, czy rzeczywiście jest bezczynny. Jak powiedział Massimo, powinieneś również zainstalować sterowniki pravirtualizacji dla swojego systemu-gościa. Nigdy nie widziałem bezczynnej maszyny wirtualnej pobierającej zasoby procesora z hosta.

Mircea Vutcovici
źródło
0

Nic nie wiem o KVM, ale na VMware może się tak zdarzyć, jeśli nie zainstalujesz narzędzi VMware na maszynie wirtualnej, dzięki czemu nie będzie mieć odpowiednich sterowników urządzeń dla zwirtualizowanego sprzętu i nie będzie w stanie jego wirtualny procesor na prawdziwym biegu jałowym, gdy w rzeczywistości nic nie robi, używając prostej pętli bezczynności (co w rzeczywistości odpowiada procesorowi, który zapętla się sam w sobie).

Może jest coś podobnego do narzędzi VMware, które powinieneś zainstalować na swojej maszynie wirtualnej?

Massimo
źródło
-2

Po pierwsze, przestań porównywać systemy Windows i Linux lub oczekuj, że będą zachowywać się tak samo. Oni są różni.

Windows nigdy nie jest bezczynny. Wykonuje wiele zadań w tle i z mojego krótkiego doświadczenia z Win 7 robi więcej niż mówi XP. Jedną z rzeczy, które pomogą złagodzić obciążenie, jest rozpoczęcie zamykania niezbędnych usług, takich jak usługa indeksowania.

John Gardeniers
źródło
1
Linux obsługuje również wiele „usług” w tle. Oryginalny plakat potwierdził, że Menedżer zadań pokazuje 1-2% procesora używanego przez gościa Windows.
Colin 't Hart
@Colin, jak wszyscy wiemy, Menedżer zadań kłamie na temat obciążenia procesora. Kto tutaj nie widział, aby raportował 98% bezczynności, a system nadal całkowicie nie reaguje na temperaturę procesora z powodu obciążenia? Wiem również, że Linux wykonuje zadania w tle, ale chciałem powiedzieć, że Linux i Windows to zupełnie inne zwierzęta. Ci, którzy próbują porównać jedno z drugim, zawsze będą walczyć bardziej niż ci, którzy po prostu uznają, że są inni i traktują każdego z osobna.
John Gardeniers
1
To nie ma żadnego sensu.
Colin 't Hart
@ Colin, to prawdopodobnie dlatego, że tego rodzaju rzeczy są poza twoim zasięgiem. Każdy system Windows, który był przez jakiś czas, zrozumie, co napisałem o obciążeniu procesora. Każdy, kto pracuje zarówno z systemem Windows, jak i Linux, powinien zrozumieć resztę. Ponieważ nie pracujesz na tym samym polu, tak naprawdę nie oczekuję, że zrozumiesz te rzeczy, tak jak nie zrozumiałbym niczego Oracle.
John Gardeniers,
Co sprawia, że ​​myślisz, że nie pracuję na tym samym polu?
Colin 't Hart