Než budeme pokračovat, přečtěte si prosím Proč Windows 10 VM vždy ukazuje 100% využití CPU na QEMU-KVM? Stejný problém platí pro Windows 10 VM na OpenStack, takže je pomalý a vždy využívá 100% využití CPU. Tento článek ukazuje, jak nakonfigurovat OpenStack pro spuštění Windows10 VM na vícejádrovém procesoru využívajícím všechna jádra na CPU.
Informace o nastavení
Verze KVM: 2.12.0
Hostující OS: Windows 10 Home
HOSTITELSKÝ CPU: Procesor AMD Opteron(TM) 6128 s
- Model CPU:x86_64
- CPU(y):16
- Frekvence procesoru:2000 MHz
- Zásuvky CPU:1
- Jádra na soket:4
- Vlákna na jádro:1
- NUMA buněk:4
- Velikost paměti:65771872 kB
Jak nakonfigurovat OpenStack pro spuštění Windows10 VM na vícejádrovém procesoru
Moderní serverové CPU, jak je uvedeno výše, používají architekturu NUMA (Non-Uniform Memory Access). Níže uvedený obrázek ukazuje srovnání UMA s NUMA. Architektura NUMA poskytuje samostatnou paměť pro každý procesor (na rozdíl od UMA, kde všechny procesory přistupují ke sdílené paměti prostřednictvím sběrnice). Současně může procesor přistupovat k paměti, která patří jiným procesorům, pomocí sdílené sběrnice. CPU má výkonnostní výhodu v tom, že přistupuje ke své vlastní místní paměti rychleji než jiná paměť na víceprocesoru.
S laskavým svolením PIC:www.nakivo.com
Při spouštění virtuálních počítačů na hostitelích NUMA, jak je znázorněno na obrázku níže, je důležité, aby procesy provádějící vCPU byly na stejném uzlu NUMA jako paměť používaná těmito procesy. To zajišťuje, že všechny přístupy do paměti jsou pro uzel lokální, a tudíž nespotřebovávají omezenou šířku pásma paměti mezi uzly, což zvyšuje latenci přístupů do paměti.
Konfigurace OpenStack topologie NUMA a funkce připínání CPU poskytuje vysokou úroveň kontroly nad tím, jak instance běží na CPU hypervisoru, a nad topologií virtuálních CPU dostupných pro instance.
Jak nakonfigurovat varianty s umístěním a topologií uzlů NUMA
S níže uvedenou konfigurací bude ovladač libvirt schopen provádět inteligentní umístění CPU/JÁDRA pro hosty. To zvýší efektivní využití výpočetních zdrojů a sníží latenci tím, že zabrání přístupu hostů k paměti mezi uzly. Chcete-li podpořit specifikaci topologie, musíte do příchuti přidat další specifikace. Openstack umožňuje definovat topologii CPU procesorů ve virtuálním stroji pomocí vlastností.
$ openstack flavor set FLAVOR-NAME \ --property hw:cpu_sockets=FLAVOR-SOCKETS \ --property hw:cpu_cores=FLAVOR-CORES \ --property hw:cpu_threads=FLAVOR-THREADS \
Kde:
- FLAVOR-SOCKETS: (celé číslo) Počet soketů pro hostovaný virtuální počítač. Ve výchozím nastavení je toto nastaveno na počet požadovaných vCPU.
- FLAVOR-CORES:(celé číslo) Počet jader na soket pro hostovaný virtuální počítač. Ve výchozím nastavení je tato hodnota nastavena na 1.
- FLAVOR-THREADS:(celé číslo) Počet vláken na jádro pro hostovaný virtuální počítač. Ve výchozím nastavení je tato hodnota nastavena na 1.
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.
Pro moji topologii je níže uvedena sada příchutí:
$ openstack flavor set Windows10 \ --property hw:cpu_sockets=1 \ --property hw:cpu_cores=4 \ --property hw:cpu_threads=1 \