Saya memiliki prosesor quad-core i7 dengan hyperthreading (8 core logis), ketika saya mengkonfigurasi mesin virtual untuk menggunakan 8 prosesor, VirtualBox memberi saya peringatan yang mengatakan bahwa saya hanya memiliki empat core (yang benar) dan ini dapat menyebabkan masalah kinerja. Tapi hyper-threading adalah fitur perangkat keras, sehingga OS melihat 8 core dan mengirimkan instruksi ke semua 8. Bagaimana jika pengaturannya ke 4 menyebabkan VM menggunakan 2 core (4 thread) alih-alih 4 thread simultan (pada semua 4 core) )? Apakah saya mendapat peringatan bahwa mesin saya mengalami hyper-threading?
10
Saya menemukan bahwa meskipun dimungkinkan (dan bisa dibilang lebih cepat) di VirtualBox (pengalaman saya adalah dengan versi 5.1.0) untuk mengalokasikan vCPUs ke VM berdasarkan pada prosesor logis, seseorang dapat mengalami masalah di dalam OS tamu ketika berjalan pada beban tinggi . Dalam kasus saya, Windows 2012 R2 VM dengan 12 vCPU pada 8 inti Ubuntu 16.04 host (yang melaporkan 16 prosesor logis) akan BSOD selama beban CPU yang tinggi dengan pesan kesalahan DPC_WATCHDOG_VIOLATION. Analisis minidump menggunakan osronline.com menunjukkan e1g6032e.sys (pengandar jaringan Intel 100/1000 yang berasal dari Windows) menjadi penyebab pelanggaran.
Ini membuat saya percaya bahwa waktu di dalam OS tamu dipengaruhi secara negatif ketika mengalokasikan vCPU berdasarkan kapasitas prosesor logis dan menjalankan VM pada beban tinggi untuk periode yang lama. Dalam kasus saya, 100% beban CPU di dalam Windows VM selama beberapa menit akan menghasilkan BSOD. Setelah mengurangi jumlah vCPU menjadi 8 (yang sesuai dengan jumlah inti fisik host), Windows VM tidak BSOD lagi di bawah situasi beban tinggi serupa. The dokumentasi online dari VirtualBox mengatakan kita harus melakukan ini, tetapi tidak menawarkan alasan apapun.
Di lingkungan saya ada juga dua VM Ubuntu lain yang berjalan, masing-masing dengan 8 vCPU mereka sendiri. Namun beban pada mereka sangat minim pada saat masalah BSOD Windows VM.
sumber
Apakah saya mendapat peringatan bahwa mesin saya mengalami hyper-threading?
Iya. Jika Anda mengatur jumlah core dalam VM menjadi lebih besar dari jumlah yang Anda miliki secara fisik, proses penjadwalan tugas di Virtual Box melebihi komit sumber daya CPU, yang mengarah ke masalah kinerja utama.
Adapun mendistribusikan beban melintasi core, itu adalah tugas OS host, dan harus berperilaku di manor yang benar.
sumber
Apakah ini VM asli untuk mesin Anda? Terkadang Anda akan mendapatkan kesalahan khusus jika Anda mengkloning VM dan memindahkannya ke komputer lain dan / atau mengubah pengaturan.
Saya sarankan mengunduh dan menginstal versi terbaru dari Virtual Box dengan ekstensi terbaru.
Saya telah melakukan semua delapan core dan saya tidak menerima kesalahan itu dengan i7 saya menjalankan VM dengan Ubuntu 13.10.
sumber