Semua
Saya mempunyai masalah pada server saya sejak saya memigrasikan salah satu VM saya dari Windows 2008 Server ke Windows 7 (ultimate): meskipun saya telah menetapkan empat core ke VM dan bahkan tampaknya melihatnya, sepertinya berpikir demikian. memiliki dua inti!
Adakah yang bisa memberi tahu saya apa yang terjadi di sini? Saya pikir itu bisa menjadi beberapa ketidakcocokan antara KVM dan Windows 7 tetapi karena melihat prosesor virtual saya mulai berpikir tidak ... ada petunjuk?
Berikut adalah screenshot dari manajer proses yang hanya menampilkan dua inti pada kotak yang sama:
Jawaban:
Saya menduga prosesor sedang disajikan sebagai prosesor inti tunggal di soket terpisah. Windows 7 ultimate mendukung hingga 2 sistem soket, sehingga akan menggunakan 2 prosesor.
Saya tidak tahu apakah Anda dapat mengkonfigurasi KVM untuk menghadirkan prosesor sebagai CPU quad core tunggal atau 2 CPU dual core, yang seharusnya menyelesaikan masalah.
sumber
Pada libvirt 0.8.3, jika Anda mengetik:
itu akan mencantumkan topologi host:
Angka-angka mengacu pada soket, inti per soket, dan benang per inti. Tambahkan baris ini ke entri cpu di file xml untuk memungkinkan windows menggunakan semua 4 core, misalnya:
sumber
<topology sockets='1' cores='4' threads='1'/>
ke xml saya.virsh capabilities | grep topology
menunjukkan<topology sockets='1' cores='6' threads='2'/>
. KRITIS: dilakukan dikill -HUP nnnnn
mana nnnnn adalah PID dari proses libvirtd saya. Mulai VM. Itu berhasil. +1! Terima kasih! ... Tapi jangan lupa untuk menendang libvirtd dengan sinyal HUP atau restart!Pengaturan topologi didukung penuh dalam virt-manager sejak Ubuntu 15.04.
Dari virt-manager> CPU> Topologi:
Berikut ini dibuat dari pengaturan di atas di virt-manager. Anda tidak perlu memasukkan ini dengan edit virsh.
Topologi berhenti dikenali oleh windows setelah pembaruan, dan sekali lagi membatasi CPU Virtual menjadi 2 soket.
Untuk memperbaikinya, gunakan 'virsh edit' untuk menyembunyikan fitur kvm, dan menambahkan fitur hyperv. Setelah benar-benar dimatikan dan reboot, VM windows akan kembali mengenali banyak CPU.
Mengapa Windows 7 VM saya berjalan di Linux KVM tidak menggunakan semua prosesor virtual?
sumber
Dalam RHEL / CentOS 5.5 (kvm> = 83-164.el5) biner kvm mendukung opsi "-smp N, cores = N" (ada patch backport dalam paket); namun, versi libvirt tidak mendukung elemen <topology> dalam domain XML. Solusinya adalah membuat skrip wrapper untuk / usr / libexec / kvm yang menambahkan opsi yang sesuai dan menentukan skrip itu di elemen <emulator> alih-alih jalur default.
sumber
Perlu dicatat bahwa Ubuntu 10.4 (Lucid) memiliki libvirt versi 0.7.5 sementara dukungan untuk topologi ditambahkan ke libvirt dalam versi 0.7.6. Ubuntu 10.10 (Maverick) memiliki libvirt 0.8.3 dan karenanya harus dapat secara langsung mendukung spesifikasi topologi dalam XML tanpa pembungkus.
sumber