mengapa Virtualbox menggunakan 15-20% CPU ketika VM dijeda?

10

Saya menjalankan VirtualBox 3.1 di Ubuntu dengan tamu Win XP. Saya perhatikan betapa terkejutnya saya bahwa ketika saya menjeda VM (layarnya keluar) VirtualBox terus menggunakan 15-20% dari CPU host.

Apakah ini perilaku normal?

Apakah ada cara untuk menghindarinya? (Tanpa menyimpan status VM dan keluar dari VirtualBox.)

Terima kasih atas wawasannya!

~ lara

laramichaels
sumber

Jawaban:

8

Untuk mengurangi penggunaan CPU VirtualBox setiap saat, gunakan hack yang aneh ini.

Buat mesin virtual baru dan jangan menginstal sistem operasi untuk itu. Katakan VirtualBox itu akan menjalankan DOS dan memberikan sumber daya minimum absolut. Jangan pasang O / S. Jalankan, biarkan kesalahan keluar saat boot dan minimalkan.

Saat menjalankan O / S asli Anda dalam VM kedua, Anda akan melihat utilisasi CPU Virtualbox idle Anda turun menjadi 3-5%.

Ide dari jed4czar: http://ubuntuforums.org/showthread.php?s=58e862a814e65eb96f8fe8389b615366&t=838073&page=2

EDIT: Untuk menjawab pertanyaan Anda secara langsung

mengapa Virtualbox menggunakan 15-20% CPU ketika VM dijeda?

Itu adalah bug. Itu selalu menggunakan 15-20% lebih banyak CPU daripada yang dibutuhkan, ketika salah satu VM habis, kecuali hack yang disediakan digunakan.

Apakah ada cara untuk menghindarinya?

Lihat retas di atas.

kmarsh
sumber
senang tahu, bahwa vbox mengalokasikan cpu-sources bekas pada startup
Diskilla
ooooh itu memperbaikinya untuk saya juga! Keren terima kasih. Untuk info, saya menjalankan windows 8.1, VM adalah centos dan sedang menghabiskan waktu idle sekitar 15% cpu. VBox v4.3.12
Sebas
Luar biasa ini masih menjadi masalah.
kmarsh
4

Saya mencoba peretasan yang dijelaskan di atas dengan DOS VM, tetapi tidak berhasil (menjalankan Ubuntu 12,04 tamu di MacBook Pro dengan OS X). Saya juga mencoba perubahan parameter kernel yang disebutkan di utas Oracle , sekali lagi tidak ada perubahan. Tidak peduli apa yang saya lakukan, tamu saya sepertinya makan 15-20% CPU masing-masing. Namun, saya perhatikan bahwa satu tamu yang kebetulan saya berikan 2 CPU tidak mengunyah 15-20% - berperilaku seperti yang diharapkan.

Benar saja, ketika saya beralih yang lain ke 2 CPU masalah menghilang. Dari pengalaman sebelumnya, saya tahu bahwa beralih ke 2 CPU juga memungkinkan opsi IO APIC di bagian motherboard jadi saya menduga itu adalah perubahan yang benar-benar menarik. Yaitu, yang ini:

IOAPIC Diaktifkan

Perhatikan bahwa Anda harus mematikan mesin untuk mengubah pengaturan ini, jika tidak maka akan berwarna abu-abu. Setelah saya mengaktifkan ini pada para tamu dan memulai kembali, tidak masalah jika saya memiliki 1 atau lebih CPU, penggunaan CPU 15-20% hilang, jadi saya pikir saya akan membagikan solusi saya di sini.

Adam C
sumber
1

Saya memiliki masalah yang sama pada kotak Windows 7 Quad menjalankan Oracle 5 di VM.

Mengikuti saran Adam saya memeriksa opsi Diaktifkan IO APIC tetapi tidak berhasil. Jadi, saya mengikuti ide kmarsh, yang mungkin membutuhkan waktu kurang dari satu menit untuk mencoba, dan penggunaan prosesor turun dari 15-20% menjadi 4-5%.

Pengaturan yang digunakan adalah, Nama: Memory Hack, Jenis: Lainnya, Versi: DOS. Ukuran Memori: 4MB, Hard Drive: Jangan tambahkan hard drive virtual. Klik [Buat]. Memulai VM meminta disk pembuka, saya menggunakan: Host Drive 'D:', klik [Start]. Mesin virtual menyatakan: "FATAL: Tidak dapat membaca dari media boot! Sistem terhenti." Pada saat itu, penggunaan cpu turun, jadi saya meminimalkan jendela. Memulai VM kedua tidak ada bedanya.

tolong hapus saya
sumber
Tampaknya masalah ini sangat rumit sehingga tidak ada yang dapat memperbaiki masalah ini.
kmarsh
0

Saya mengalami masalah VirtualBox ini pada mesin P4 2-cpu dengan ram 3g menjalankan host CentOS 5.5.

Saya tidak mengalami masalah ini pada mesin 8cpu i720 dengan 8 gigs menjalankan Win7 64-bit. Saya menjalankan 3 mesin virtual VMWare plus VirtualBox, semuanya dengan memori 2-gigs, dan tidak memiliki masalah CPU apa pun.

Ini menunjukkan apakah berjalan pada mesin "bertubuh kecil" atau pada host Linux adalah masalahnya.

Solusi Anda bekerja dengan baik, terima kasih.

Saya perhatikan bahwa posting sebelumnya ini berumur satu tahun, dan VirtualBox saya adalah Versi 4.0.4 terbaru, jadi Oracle belum memperbaiki bug ini.

Wayne Linton
sumber
2
Saya berharap hukuman kinerja ini dikaitkan dengan wajah bahwa CPU yang lebih baru memiliki VT-x dan serupa untuk memungkinkan virtualisasi yang dibantu perangkat keras yang berarti bahwa program VirtualBox tidak melakukan pekerjaan dan karenanya mengurangi penggunaan CPU. P4 kemungkinan tidak memiliki teknologi VT-x dan karenanya harus menerjemahkan panggilan sistem melalui perangkat lunak dan sebagai hasilnya, menggunakan lebih banyak CPU.
Mokubai
Ini pasti sudah diperbaiki sekarang. menggunakan host Ubuntu dan tamu XP yang menjalankan VirtualBox v4.3.6 ketika saya menjeda tamu, penggunaan CPU turun di bawah 1%
Seeker
0

Jawaban lain tidak menjelaskan atau memperbaiki bug untuk saya (host Debian, menjeda tamu Ubuntu). Oracle memiliki bagian untuk ini:

Beberapa tamu Linux dapat menyebabkan beban CPU tinggi bahkan jika sistem tamu tampaknya idle. Ini bisa disebabkan oleh frekuensi timer kernel yang tinggi. Beberapa distribusi Linux, misalnya Fedora, mengirimkan kernel Linux yang dikonfigurasikan untuk frekuensi timer 1000Hz. Kami merekomendasikan untuk mengkompilasi ulang kernel tamu dan untuk memilih frekuensi timer 100Hz.

Kernel Linux yang dikirimkan dengan Red Hat Enterprise Linux, serta kernel distribusi Linux yang terkait, seperti CentOS dan Oracle Linux, mendukung pembagi parameter kernel = N. Karenanya, kernel tersebut mendukung frekuensi timer yang lebih rendah tanpa kompilasi ulang. Kami menyarankan Anda menambahkan pembagi parameter kernel = 10 untuk memilih frekuensi timer kernel tamu 100Hz.

Sumber: Tamu Linux Dapat Menyebabkan CPU load tinggi

Mayeulk
sumber