Bagaimana cara mengurangi penggunaan CPU saat menjalankan Virtual Box?

12

Saya menghadapi masalah dengan penggunaan CPU 100% di bawah sistem saya ketika menjalankan VirtualBox. Berikut ini beberapa perincian lebih lanjut:

Informasi Sistem Saya:

Nama CPU 1: Intel (R) Pentium (R) Dual CPU T2310 @ 1.46GHz
CPU 1 level 1 ukuran cache: 32K Data cache. Cache Instruksi 32K.

CPU 1 level 2 ukuran cache: 1024K cache Terpadu.
CPU 1 Mips: 2926.20
Nama CPU 2: Intel (R) Pentium (R) CPU Ganda T2310 @ 1.46GHz
CPU 2 level 1 ukuran cache: cache Data 32K. Cache Instruksi 32K.

CPU 2 level 2 ukuran cache: 1024K cache Terpadu.

CPU 2 Mips: 2925,96
64 bit CPU? Iya!
Total memori: 2.0 GB
Total swap: 6141 MBytes


Informasi Sistem Operasi Saya:

Kubuntu OS versi: 11.04
Versi kernel: 2.6.38-8-
lengkungan kernel generik : i686
Shell default: / bin / bash


Pengaturan Kotak Virtual Saya:

Jenis OS:
Memori Video Windows XP : 32 MB
Akselerasi:
Memori Dasar 3D : 512 MB

Rincian Masalah:

Ya, setiap kali saya menjalankan Windows XP dari VirtualBox, saya melihat penggunaan CPU hampir 100%. Saya mengalami sistem yang lambat bahkan jika tidak ada program yang berjalan pada versi Windows XP yang saya host.

Saya bertanya-tanya apakah ada cara bagi saya untuk bermain dengan pengaturan sehingga saya dapat sedikit meningkatkan kinerja. PC saya relatif cepat di bawah sistem operasi Linux saya. Saya perlu tahu apakah ada beberapa tips yang dapat saya ikuti ketika mengkonfigurasi pengaturan VirtualBox saya sehingga saya dapat mencapai hasil yang lebih baik.

Setiap saran / ide sangat dihargai!

Kompilasi Cborg
sumber
Jadi maksud Anda VM Anda berjalan lambat, atau sistem Anda sama sekali? CPU Anda memiliki adalah agak lemah - jadi saya tidak akan bertanya-tanya jika itu sampai ke 100% ketika Anda menjalankan VMS.
slhck
CPU-nya lambat, tapi saya sudah menjalankan XP pada host SUSE di Athlon XP 2800+ tanpa masalah dan 2 GIB RAM, dan sistem ini berkali-kali lebih cepat daripada milik saya. Seharusnya bisa menjalankan VirtualBox dan XP dalam kondisi netral tanpa masalah. Juga memberi +1 untuk daftar spesifikasi komputer yang relevan.
AndrejaKo
Saya telah menghadapi masalah yang sama di bawah beberapa sistem operasi di komputer yang sama. Sebelumnya, saya menggunakan Linux Mint, Ubuntu, Slax, Fedora dan sepertinya saya menghadapi masalah serupa dengan penggunaan CPU. Namun, saya percaya jika saya dapat "dengan benar" mengubah pengaturan VM saya, saya "mungkin" dapat meningkatkan kinerja sedikit.
CompilingCyborg
Solusi sementara yang saya gunakan saat ini adalah loop tak terbatas yang menjalankan perintah bash untuk membebaskan pagecache, gigi palsu dan inode setiap 10 detik. VM saya mampu bernafas sedikit setelah saya berpikir untuk menggunakan teknik aneh ini meskipun itu bukan cara yang tepat untuk melakukannya melainkan "retas".
CompilingCyborg
1
Sayangnya T2310 tidak memiliki ekstensi Virtualisasi VT-x ( ark.intel.com/Product.aspx?id=32431 ) dan sebagai hasilnya Virtualbox akan menggunakan perangkat lunak untuk menangkap semua panggilan cpu hak istimewa tinggi yang akan dibuat oleh tamu, ini akan berarti bahwa Virtualbox sendiri akan menggunakan lebih banyak daya CPU untuk memenuhi OS tamu. Saya juga ingin tahu apakah memberikan OS guest RAM 1GB mungkin membantunya lebih baik karena tidak perlu melakukan kesalahan halaman Virtualbox-host-mahal seperti sering ...
Mokubai

Jawaban:

5

Menguraikan komentar saya di atas, T2310 tidak memiliki ekstensi Virtualisasi (VT-x) sesuai datasheet CPU Anda di http://ark.intel.com/Product.aspx?id=32431

Dari artikel Wikipedia ini , ada tiga hal dasar yang akan menyebabkan penurunan kinerja VM yang terukur (dan karenanya peningkatan penggunaan CPU pada host:

  • Terjemahan biner digunakan untuk menulis ulang instruksi tertentu, seperti POPF, yang jika tidak akan gagal secara diam-diam atau berperilaku berbeda ketika dieksekusi di atas ring 0 membuat virtualisasi perangkap-dan-meniru tidak mungkin dilakukan. Untuk meningkatkan kinerja, blok dasar yang diterjemahkan perlu di-cache dalam cara yang koheren yang mendeteksi patching kode (digunakan dalam VxDs misalnya), penggunaan kembali halaman oleh OS tamu, atau bahkan kode modifikasi sendiri.

  • Sejumlah struktur data utama yang digunakan oleh prosesor perlu dibayangi. Karena sebagian besar sistem operasi menggunakan memori virtual paged, dan memberikan akses langsung OS tamu ke MMU akan berarti hilangnya kontrol oleh manajer virtualisasi, beberapa pekerjaan x86 MMU perlu diduplikasi dalam perangkat lunak untuk OS tamu menggunakan teknik. dikenal sebagai tabel halaman bayangan. Ini melibatkan menolak OS tamu akses ke entri tabel halaman aktual dengan menjebak upaya akses dan meniru mereka dalam perangkat lunak.

  • Emulasi perangkat I / O: Perangkat yang tidak didukung pada OS tamu harus ditiru oleh emulator perangkat yang berjalan di OS host.

Sistem operasi tamu memiliki suara yang besar untuk operasi yang memerlukan penggunaan instruksi khusus yang diperlukan dan biasanya overhead ini sangat dimitigasi dengan penggunaan Intels VT-x dan ekstensi virtualisasi AMD-V AMD. Prosesor Anda tidak memiliki ekstensi ini sehingga semua pekerjaan penangkapan dan emulasi akan menyebabkan beberapa kehilangan kinerja.

Rekomendasi saya adalah:

  • Untuk memberikan mesin virtual sebanyak memori yang diperlukan untuk meminimalkan jumlah paging yang perlu dilakukan, mungkin 1GB atau lebih tergantung pada beban kerja Anda.

  • Nonaktifkan akselerasi 3D karena semua panggilan ke driver 3D mungkin harus didorong melalui lapisan emulasi dan karenanya mungkin mahal pada prosesor Anda.

  • Instal Tambahan Tamu Virtualbox untuk sistem operasi tamu Anda karena ini akan menggunakan driver yang lebih baik mendukung lingkungan virtual.

  • Kurangi resolusi layar dan opsi grafis di sistem operasi tamu Anda.

  • Pertahankan akses jaringan (internet) ke tingkat yang wajar, mesin virtual yang terikat jaringan sangat mahal bahkan dengan VT-x dan manfaat dari VT-d (Teknologi Virtualisasi untuk I / O yang Diarahkan) juga, yang juga tidak didukung oleh prosesor Anda.

Mokubai
sumber
2

Jawaban saya terkait dengan judul pertanyaan saja, bukan dengan teks pertanyaan lainnya. Penekanan saya pada penggunaan CPU idle dengan lebih banyak tamu virtual: (cukup memori bebas di host).

Penggunaan CPU yang disebabkan oleh audiodg.exeproses pada host Windows ketika menjalankan VirtualBox lebih tinggi daripada beban tamu iddle itu sendiri. Itu dapat dengan mudah dikurangi atau benar-benar keluar dengan menonaktifkan kotak centang Audio di pengaturan tamu Virtualbox pada tab Audio. (Hanya dapat dinonaktifkan pada mesin tertutup.)

Proses audiodg.exe mengkonsumsi sekitar 5% CPU untuk satu tamu, tetapi ini penting memuat pada laptop selama aktivitas idle yang khas seperti pengeditan sumber dan memiliki dampak besar pada frekuensi CPU (menurun dari 80% menjadi 40%), kecepatan kipas dan daya tahan baterai pada laptop. Banyak mesin virtual saya yang berjalan biasanya tidak membutuhkan suara atau hanya kadang-kadang. (Menonaktifkan audio di OS tamu tidak berpengaruh, tidak ada jeda dari mesin virtual, tetapi pengaturan tamu virtualbox penting.)

hynekcer
sumber