GNU/Linux >> Znalost Linux >  >> Linux

Proč Windows 10 VM vždy ukazuje 100% využití CPU na QEMU-KVM?

Možná jste četli můj článek o tom, jak vytvořit bitovou kopii Windows pro OpenStack a související články, jako je například oprava, že systém Windows nemohl analyzovat nebo zpracovat soubor odpovědí bez obsluhy pro Pass Specialize a Jak nakonfigurovat automatické přihlášení Windows VM pro OpenStack Cloud. Pro doplnění série, zde jsem narazil na další problém. tj. Windows 10 VM ukazuje 100% využití CPU vždy na QEMU-KVM, takže VM je nepoužitelný.

Informace o nastavení

Verze KVM: 4.2.0

Hostující OS: Windows10 Home VM s 8vCPU

HOSTITELSKÝ CPU: Procesor AMD Opteron(TM) 6212 s

  • Model CPU:x86_64
  • CPU(y):32
  • Frekvence procesoru:2593 MHz
  • Zásuvky CPU:1
  • Jádra na soket:32
  • Vlákna na jádro:1
  • NUMA buněk:1
  • Velikost paměti:65633412 kB

Systém Windows však detekoval tyto vCPU jako samostatné procesory (nikoli jádra) a mohl používat pouze 1 z nich, jak je uvedeno níže:

Problém

Otevřete Windows Device Manager a přejděte na Processors abychom se ujistili, že má přiděleno 8 vCPU, které jsme přiřadili hostujícímu OS.

Současně se vlastnosti Windows 10 i správce úloh zobrazují, že je k dispozici pouze 1 virtuální procesor QEMU.

Vysvětlení

To znamená, že Windows 10 je schopen používat pouze 1 jádro bez ohledu na to, kolik jich v procesoru máte.

Počet podpory procesorů ve Windows

Problém je v tom, že desktopová verze Windows má omezení na maximální počet fyzických procesorů (socketů), které může počítač používat

  • Windows 10 Home      – 1 CPU
  • Windows 10 Professional – 2 CPU
  • Windows 10 Workstation – až 4 CPU
  • Windows Server 2016 – až 64 CPU

Toto omezení však nesouvisí s počtem jader. Chcete-li zlepšit výkon virtuálního počítače, můžete použít procesor s více jádry.

Řešení

Správa virtuálního jádra a vCPU v QEMU-KVM

V KVM Hypervisor se systémem Windows 10 VM jsou všechna přiřazená virtuální jádra považována za samostatné procesory. Chcete-li využít všechny prostředky CPU přidělené virtuálnímu počítači, musí mít jeden 8jádrový procesor. KVM hypervisor umožňuje uživateli nastavit počet virtuálních jader používaných každým virtuálním strojem.

Nikdy Nekonfigurujte vyšší číslo. jader na každém virtuálním počítači

Nikdy nekonfigurujte vyšší počet virtuálních jader na každém virtuálním počítači, než je počet skutečných jader dostupných na hostitelském počítači.

Vypnutí virtuálního počítače (win10 je název virtuálního počítače)

# virsh shutdown win10

Upravit konfiguraci XML virtuálního počítače KVM

# virsh edit win10

Výstup :

<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>
....
....

Přidejte následující blok za </features>

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

Uložte konfigurační soubor a spusťte virtuální počítač. Nyní se přihlaste k hostujícímu virtuálnímu počítači Windows 10 a ujistěte se, že Windows vidí všechna přidělená virtuální jádra ve Správci úloh, jak je uvedeno níže.


Linux
  1. Proč je Windows10 VM pomalý na OpenStack?

  2. Proč Windows 10 VM vždy ukazuje 100% využití CPU na QEMU-KVM?

  3. Proč Sudo ignoruje aliasy?

  1. Co znamená /proc/loadavg ‘S „Využití procesoru a Io“?

  2. Vysoký procesor způsobený Sophos ve Windows

  3. Proč hardwarový router funguje lépe než router Linux s lepšími specifikacemi (RAM a CPU)?

  1. Má ~ Vždy stejný $domov?

  2. Proč Unixový čas začíná na 1970-01-01?

  3. Proč „ukončit &“ nefunguje?