GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Windows 10 VM menunjukkan pemanfaatan CPU 100% selalu di QEMU-KVM?

Anda mungkin telah membaca artikel saya tentang Cara Membuat gambar Windows untuk OpenStack dan artikel terkait seperti memperbaiki Windows tidak dapat mengurai atau memproses file jawaban tanpa pengawasan untuk Pass Specialize, dan Cara mengkonfigurasi Windows VM Autologin untuk OpenStack Cloud. Untuk menambah seri, di sini saya mengalami masalah lain. yaitu, Windows 10 VM menunjukkan 100% pemanfaatan CPU selalu pada QEMU-KVM, membuat VM tidak dapat digunakan.

Info Penyiapan

Versi KVM: 4.2.0

OS Tamu: Windows10 Home VM dengan 8vCPU

CPU HOST: Prosesor AMD Opteron(TM) 6212 dengan

  • Model CPU:x86_64
  • CPU:32
  • Frekuensi CPU:2593 MHz
  • soket CPU:1
  • Inti per soket:32
  • Utas per inti:1
  • NUMA sel:1
  • Ukuran memori:65633412 KiB

Namun, Windows mendeteksi vCPU ini sebagai prosesor terpisah (bukan inti) dan hanya dapat menggunakan 1 di antaranya seperti yang ditunjukkan di bawah ini:

Masalah

Buka Device Manager Windows dan navigasikan ke Processors untuk memastikan telah mengalokasikan 8 vCPU yang telah kami tetapkan ke OS tamu.

Pada saat yang sama, baik Windows 10 Properties dan task manager menunjukkan hanya 1 Prosesor virtual QEMU yang tersedia.

Penjelasan

Artinya, Windows 10 hanya dapat menggunakan 1 inti tidak peduli berapa banyak inti yang Anda miliki di prosesor.

Jumlah Dukungan Prosesor di Windows

Masalahnya adalah versi desktop Windows memiliki batasan jumlah maksimum prosesor fisik (soket) yang dapat digunakan komputer

  • Windows 10 Home      – 1 CPU
  • Windows 10 Professional – 2 CPU
  • Stasiun Kerja Windows 10 – hingga 4 CPU
  • Windows Server 2016 – hingga 64 CPU

Namun, pembatasan ini tidak terkait dengan jumlah core. Untuk meningkatkan kinerja Mesin Virtual, Anda dapat menggunakan prosesor dengan lebih banyak inti.

Solusi

Mengelola Virtual Core &vCPU di QEMU-KVM

Di KVM Hypervisor yang menjalankan Windows 10 VM, semua inti virtual yang ditetapkan dianggap sebagai prosesor terpisah. Untuk menggunakan semua sumber daya CPU yang dialokasikan ke Mesin Virtual, itu harus melihat satu prosesor 8 inti. KVM hypervisor memungkinkan pengguna untuk mengatur jumlah inti virtual yang digunakan oleh setiap mesin virtual.

Tidak pernah Konfigurasi lebih tinggi tidak. dari Cores pada setiap VM

Jangan pernah mengonfigurasi jumlah inti virtual yang lebih tinggi pada setiap VM daripada jumlah inti nyata yang tersedia di komputer host.

Matikan Mesin Virtual (win10 adalah nama VM)

# virsh shutdown win10

Edit konfigurasi XML KVM VM

# virsh edit win10

Keluaran :

<domain type='kvm'>
<name>win10</name>
<uuid>3b4b8a6c-bf72-4cf8-8c63-fd7b5edf6784</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://microsoft.com/win/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>8</vcpu>
<os>
<type arch='x86_64' machine='pc-q35-rhel8.2.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
</hyperv>
<vmport state='off'/>
</features>
....
....

Tambahkan blok berikut setelah </features>

<cpu mode='host-passthrough' check='none'>
<topology sockets='1' cores='8' threads='1'/>
</cpu>

Simpan file konfigurasi dan mulai VM. Sekarang login ke VM tamu Windows 10 dan pastikan Windows melihat semua inti virtual yang dialokasikan di Pengelola tugas seperti di bawah ini.


Linux
  1. Mendapatkan siklus cpu menggunakan RDTSC - mengapa nilai RDTSC selalu meningkat?

  2. Mengapa Windows tidak mengenali file di dalam partisi Linux?

  3. Apa arti 'bagus' pada grafik penggunaan CPU?

  1. Mengapa Windows10 VM lambat di OpenStack?

  2. Mengapa Windows 10 VM menunjukkan pemanfaatan CPU 100% selalu di QEMU-KVM?

  3. Mengapa router perangkat keras bekerja lebih baik daripada router Linux dengan spesifikasi yang lebih baik (RAM &CPU)?

  1. Mengapa Sudo Mengabaikan Alias?

  2. Apa Arti /proc/loadavg ‘S “cpu And Io Utilation”?

  3. Mengapa Waktu Unix Mulai Pada 1970-01-01?