Mengapa idle windows VM menggunakan banyak CPU?

12

Saya memiliki 2 VM yang berjalan sebagai tamu di platform virtualisasi KVM yang berjalan di Ubuntu 10.04. Satu VM adalah sistem Ubuntu 10,04, yang lain adalah sistem Windows 7. Ketika kedua mesin benar-benar keluar, mesin Linux menggunakan 1% CPU, Windows satu 45-50%, menurut atas. Grafik dalam virt-manager tampaknya mendukung hal ini. Tidak ada yang diinstal pada gambar Win7 yang akan berjalan di latar belakang; itu segar seperti yang bisa.

Mengapa VM Windows menggunakan jauh lebih banyak daripada VM Linux, ketika keduanya logout dan idle?

Edit:

Saya menginstal tamu dengan penyimpanan paravirt dan driver jaringan dari awal. Saya tidak percaya ada driver lain yang saya lewatkan, apakah saya salah?

Menurut task manager tamu, itu memang tidak berguna. Taskman membutuhkan sekitar 1 atau 2% dari CPU tamu, tetapi tidak ada proses lain yang menghabiskan waktu CPU.

Jeff Shattock
sumber

Jawaban:

4

QEMU-KVM versi apa yang Anda jalankan?

Kami telah melihat masalah ini pada versi 0.12.3 dan yang lebih rendah, tetapi sepertinya tidak terlalu banyak masalah di 0.12.4. Juga, periksa untuk melihat apakah screensaver sedang berjalan. Jika Anda menggunakan koneksi VNC maka itu mungkin berjalan di sana, dan pemanfaatan CPU tidak akan berada di dalam VM - itu akan digunakan oleh proses KVM.

trevoro
sumber
1
0.12.3. Saya akan membangun 0.12.4 dan melihat apakah ini hilang.
Jeff Shattock
1
Dan memang benar. Windows menemukan driver untuk Qemu 0.12.4 Virtual CPU, dan masalah ini hilang setelah tamu reboot.
Jeff Shattock
7

Saya tahu bahwa jawaban saya muncul setelah 100 tahun tetapi: untuk referensi di masa mendatang, silakan lihat di sini:

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

Jika itu adalah casethen di sini adalah solusinya: http://support.microsoft.com/kb/895980

Itu menjatuhkan penggunaan cpu tamu Win2K3 R2 saya (ketika tamu idle) pada host x86_64 kvm saya dari ~ 30% -40% hingga 6%

Eugen
sumber
2
Utas pada Proxmox memiliki informasi bermanfaat: menghapus perangkat keras virtual tablet USB dari windows VM akan menurunkan jumlah sakelar konteks. Windows VM saya yang idle berubah dari 20% host CPU menjadi 5% host CPU.
Colin 't Hart
Terima kasih, berhasil untuk saya. Perangkat virtual tablet mengirim permintaan interupsi tanpa akhir
michaelbn
1

Fakta bahwa Windows baru diinstal bukan berarti tidak menjalankan proses atau layanan latar belakang. Pantau mesin windows dengan SNMP atau task manager dan coba cari tahu apakah itu benar-benar idle. Seperti yang dikatakan Massimo, Anda juga harus menginstal driver pravirtualization untuk OS tamu Anda. Saya belum pernah melihat VM kosong untuk mengambil sumber daya CPU dari host.

Mircea Vutcovici
sumber
0

Saya tidak tahu apa-apa tentang KVM, tetapi pada VMware ini bisa terjadi jika Anda tidak menginstal alat VMware di mesin virtual, sehingga tidak memiliki driver perangkat yang tepat untuk perangkat keras yang divirtualisasi dan tidak dapat menempatkan CPU virtualnya pada idle nyata ketika sebenarnya tidak melakukan apa-apa, menggunakan loop idle sederhana sebagai gantinya (yang sebenarnya sesuai dengan CPU yang sepenuhnya sibuk pada looping itu sendiri).

Mungkin ada sesuatu yang mirip dengan alat VMware yang harus Anda instal di VM Anda?

Massimo
sumber
-2

Hal pertama, berhentilah membandingkan Windows dan Linux atau mengharapkan mereka berperilaku sama. Mereka berbeda.

Windows tidak pernah diam. Ini menjalankan banyak tugas latar belakang dan dari pengalaman singkat saya dengan Win 7 itu melakukan lebih dari itu daripada mengatakan XP. Satu hal yang akan membantu meringankan beban adalah mulai mematikan layanan yang diperlukan, seperti layanan pengindeksan.

John Gardeniers
sumber
1
Linux juga menjalankan banyak "layanan" latar belakang. Dan poster asli mengkonfirmasi bahwa Task Manager menunjukkan 1-2% CPU yang digunakan dalam tamu Windows.
Colin 't Hart
@Colin, seperti kita semua tahu, Manajer Tugas berbohong tentang beban CPU. Siapa di sini yang belum melihatnya melaporkan 98% menganggur dan sistem masih benar-benar tidak responsif dengan suhu CPU karena beban? Saya juga sangat menyadari bahwa Linux juga menjalankan tugas-tugas latar belakang tetapi yang saya maksudkan adalah bahwa Linux dan Windows adalah hewan yang sama sekali berbeda. Mereka yang mencoba membandingkan satu dengan yang lain akan selalu berjuang lebih dari mereka yang hanya menerima bahwa mereka berbeda dan memperlakukan masing-masing sebagai entitas yang terpisah.
John Gardeniers
1
Itu tidak masuk akal sama sekali.
Colin 't Hart
@Colin, itu mungkin karena hal semacam ini jauh dari bidang Anda. Setiap Windows yang sudah ada untuk sementara waktu akan mengerti apa yang saya tulis tentang beban CPU. Siapa pun yang bekerja dengan Windows dan Linux harus memahami sisanya. Karena Anda tidak bekerja di bidang yang sama, saya tidak benar-benar berharap Anda memahami hal-hal ini, sama seperti saya tidak akan mengerti apa pun Oracle.
John Gardeniers
Apa yang membuatmu berpikir aku tidak bekerja di bidang yang sama?
Colin 't Hart