Spravujte počet vCPU a jadier vo virtuálnom stroji

Pri vytváraní virtuálnych počítačov na rôznych hypervizoroch (VMWare, KVM, Hyper-V atď.) Si môžete všimnúť, že virtuálny počítač niekedy nemusí vidieť všetky virtuálne jadrá, ktoré sú mu priradené (vCPU). V našom prípade bolo virtuálnemu stroju KVM pridelených 8 vCPU, na ktorom bol nainštalovaný Windows 10. Avšak Windows definovali tieto jadrá ako samostatné procesory, z ktorých možno použiť iba 2 vCPU..

obsah:

  • Virtuálny stroj Windows 10 nevidí všetky jadrá
  • Počet podporovaných procesorov v systéme Windows 10
  • Správa virtuálnych jadier a vCPU v KVM
  • Konfigurácia virtuálnych procesorov a počet jadier vo VMWare
  • Architektúra NUMA a virtuálne vCPU

Virtuálny stroj Windows 10 nevidí všetky jadrá

Ak otvoríte Správcu zariadení Windows, môžete si byť istí, že všetky vybrané jadrá sú viditeľné ako 8 samostatných virtuálnych procesorov typu Virtuálny procesor QEMU, verzia 2.5.

Zároveň vo vlastnostiach Windows 10 (Počítač -> Vlastnosti) av Správe úloh vidno, že v počítači sú k dispozícii iba 2 virtuálne procesory QEMU..

To znamená, že bez ohľadu na to, koľko virtuálnych jadier pridáte, systém Windows 10 môže stále používať iba dve. Zároveň susedný virtuálny server s Window Server 2016 na rovnakom hypervízore vidí všetkých 16 vCPU, ktoré mu boli pridelené..

Počet podporovaných procesorov v systéme Windows 10

Problém je v tom, že v edíciách Windows pre stolné počítače (Windows 10 / 8.1 / 7) existuje obmedzenie maximálny počet fyzických procesorov (soketov), ktorý počítač môže použiť:

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

Toto obmedzenie sa však nevzťahuje na jadrá. tj pre lepší výkon môžete použiť procesor s množstvom jadra. Väčšina hypervizorov môže poskytovať vCPU vo forme procesorov, jadier procesorov alebo dokonca vlákien. tj namiesto 8 virtuálnych CPU môžete poskytnúť vCPU vo forme 2 zásuviek so 4 jadrami v každom. Pozrime sa, ako rozlíšiť virtuálne procesory vo forme jadier v rôznych virtualizačných systémoch a ako ich prepojiť s architektúrou NUMA používanou v moderných procesoroch..

Správa virtuálnych jadier a vCPU v KVM

V mojom virtuálnom stroji KVM C Windows 10, všetky pridelené virtuálne jadrá sa považujú za samostatné procesory.

Aby sa využili všetky prostriedky CPU pridelené virtuálnemu stroju, je potrebné, aby virtuálny stroj neuvidel 8 procesorov, ale jeden 8jadrový procesor, 2 procesory so 4 jadrami alebo 1 procesor so 4 jadrami s 2 vláknami. Skúsme zmeniť spôsob, akým sú VM priradené k VM na KVM.

Vypnite virtuálny počítač:

# virsh shutdown server.vpn.ru - kde server.vpn.ru je názov virtuálneho počítača.

Funkcie správy VM v KVM zo serverovej konzoly pomocou virsh.

Vytlačte aktuálnu konfiguráciu XML virtuálneho počítača KVM:

# virsh dumpxml server.vpn.ru

Máme záujem o blok s popisom procesorov:

8 1000 / hvm stroja        

Ako vidíte, zadali sme iba 8 vCPU. Zmeňte konfiguráciu:

# virsh edit server.vpn.ru

A potom pridať:

   

kde:

  • hostiteľ-priechodná - emulačný režim, v ktorom sa virtuálny procesor klastrového uzla (uzlov) zobrazí na virtuálnom stroji.
  • zásuvky = '1' - označujú, že procesor 1
  • jadrá = '4' - indikujú, že procesor má 4 jadrá
  • vlákna = '2' - naznačujú, že máme 2 vlákna

Uložte konfiguračný súbor a spustite VM. Prihláste sa do hosťovského virtuálneho počítača pomocou systému Windows 10 a v Správcovi úloh alebo v nástroji Sledovanie zdrojov skontrolujte, či operačný systém vidí všetky vybrané virtuálne jadrá.

Tiež vlastnosti systému teraz začali zobrazovať fyzický procesor hostiteľa I.ntel (R) Xeon® Silver 4114 CPU, nie virtuálne.

Podarilo sa nám vyriešiť problém so zaťažením VM, pretože dve jadrá nestačili na úplnú aplikáciu.

Konfigurácia virtuálnych procesorov a počet jadier vo VMWare

Spôsob, akým je vCPU prezentovaný pre virtuálny stroj VMWare, môžete zmeniť z rozhrania klienta vSphere.

  1. Vypnite VM a otvorte jeho nastavenia;
  2. Rozbaľte časť CPU;
  3. Zmeňte konfiguráciu VM tak, aby hosťujúci OS videl 2 procesory so 4 jadrami. Zmeňte hodnotu Jadra na soket 4. To znamená, že hosťujúci OS uvidí dva štvorjadrové procesory (2 zásuvky so 4 jadrami);
  4. Uložte zmeny a spustite VM.

Architektúra NUMA a virtuálne vCPU

Existuje niekoľko ďalších aspektov priradenia vCPU a jadra k virtuálnym počítačom, ktorým musíte porozumieť..

Pri prideľovaní jadier na pätici zvážte Architektúra NUMA (používa sa vo väčšine moderných CPU). Neodporúča sa prideliť vášmu VM počet jadier na soket (a celkový počet vCPU) je väčší ako počet jadier dostupných na vašom fyzickom sokete / procesore (uzol NUMA). Keď sa umiestni do jediného fyzického uzla NUMA, virtuálny stroj bude môcť použiť rýchlu lokálnu pamäť RAM dostupnú v konkrétnom uzle NUMA. Inak na dokončenie operácie budú procesy musieť čakať na odpoveď z iného uzla NUMA (ktorý je o niečo dlhší).

Ak VM priradíte dve samostatné virtuálne sokety, potom ich môže hypervízor spustiť na rôznych uzloch NUMA. To nie je najlepší spôsob, ako ovplyvniť výkon VM.

Ak počet požadovaných vCPU prekročí počet jadier na 1 fyzickom sokete (uzol NUMA), musíte vytvoriť niekoľko virtuálnych soketov (procesorov) s požadovaným počtom jadier. Tiež sa neodporúča používať nepárny počet procesorov (je lepšie pridať 1 vCPU)

Tým sa ušetrí výkon virtuálneho počítača..

Napríklad pre 2 hostiteľov procesorov s 10 jadrami (k dispozícii je celkom 40 vCPU) hyper-Threading), pri konfigurácii vCPU pre VM je optimálne použiť nasledujúce konfigurácie:

Požadované množstvo vCPUPočet virtuálnych soketov v nastaveniach VMPočet jadier vo virtuálnom procesore v nastaveniach VM
111
...
10110
11Nie je optimálne
1226
...
20210
V bezplatnej verzii ESXi nemôžete vytvárať virtuálne počítače s viac ako 8 vCPU.

Napríklad VMs s Microsoft SQL Server 2016 Enterprise Edition 16 vCPU v konfigurácii 8 soketov s 2 jadrami budú pracovať horšie ako v konfigurácii 2 soketov s 8 jadrami.

Nezabudnite tiež, že niektoré aplikácie sú licencované na fyzických soketoch (ako tomu bolo v prípade starších verzií servera SQL Server). Niekedy je pre vás výhodnejšie získať licenciu na viacjadrový procesor ako niekoľko procesorov s menším počtom jadier.

Moderné verzie systému Windows Server sú licencované vo virtualizačnom prostredí špeciálnym spôsobom. V systéme VMWare vSphere existujú aj funkcie pre licenčné procesory.