Upravljajte brojem vCPU-a i jezgara u virtualnom stroju

Prilikom stvaranja virtualnih strojeva na raznim hipervizorima (VMWare, KVM, Hyper-V itd.) Možete primijetiti da ponekad virtualni stroj možda neće vidjeti sve dodijeljene virtualne jezgre (vCPU). U našem slučaju je 8 vCPU-a dodijeljeno virtualnom stroju KVM-a, na njemu je instaliran Windows 10. No Windows je te jezgre definirao kao zasebne procesore, od kojih se mogu koristiti samo 2 vCPU-a..

sadržaj:

  • Virtualni stroj za Windows 10 ne vidi sve jezgre
  • Broj podržanih procesora u sustavu Windows 10
  • Upravljanje virtualnim kernelima i vCPU-ovima u KVM-u
  • Konfiguriranje virtualnih procesora i broja jezgara u VMWare-u
  • NUMA arhitektura i virtualni vCPU

Virtualni stroj za Windows 10 ne vidi sve jezgre

Ako otvorite Windows upravitelj uređaja, možete biti sigurni da su sva odabrana jezgra vidljiva kao 8 zasebnih virtualnih procesora tipa QEMU Virtual CPU verzija 2.5.

Istovremeno, u svojstvima Windowsa 10 (Računalo -> Svojstva) i u Upravljanju zadacima može se vidjeti da su na računalu dostupne samo 2 QEMU Virtual CPU-a..

Odnosno, bez obzira koliko virtualnih jezgara koje dodate, Windows 10 i dalje može koristiti samo dvije. Istovremeno, susjedni virtualni poslužitelj s Window Serverom 2016 na istom hipervizoru vidi svih 16 vCPU-a dodijeljenih njemu.

Broj podržanih procesora u sustavu Windows 10

Problem je u tome što je u izdanjima Windowsa za Windows (Windows 10 / 8.1 / 7) uključeno ograničenje maksimalni broj fizičkih procesora (utičnice), koje računalo može koristiti:

  • Windows 10 Početna - 1 CPU
  • Windows 10 Professional - 2 CPU
  • Windows 10 Workstation - do 4 CPU-a
  • Windows Server 2016 - do 64 CPU-a

Međutim, ovo ograničenje ne odnosi se na kernele. tj za bolje performanse možete koristiti procesor s puno jezgre. Većina hipervizora može pružiti vCPU-ove u obliku procesora, procesorskih jezgara ili čak niti. tj umjesto 8 virtualnih CPU-a možete pružiti vCPU-ove u obliku 2 utičnice s po 4 jezgre u svakom. Razmotrimo kako razlikovati virtualne procesore u obliku jezgara u raznim sustavima virtualizacije i kako ih povezati s NUMA arhitekturom koja se koristi u modernim procesorima.

Upravljanje virtualnim kernelima i vCPU-ovima u KVM-u

U mom virtualnom stroju KVM c Windows 10, sve dodijeljene virtualne jezgre smatraju se zasebnim procesorima.

Za korištenje svih CPU resursa dodijeljenih virtualnom stroju potrebno je da virtualni stroj vidi ne 8 procesora, već jedan 8-jezgreni procesor, 2 procesora s 4 jezgre ili 1 procesor s 4 jezgre s 2 niti. Pokušajmo promijeniti način dodjeljivanja VM-ova VM-ovima na KVM-u.

Isključite virtualni stroj:

# virsh shutdown server.vpn.ru - gdje je server.vpn.ru naziv virtualnog stroja.

Značajke upravljanja VM-ovima u KVM-u s konzole poslužitelja pomoću virsh.

Ispišite trenutnu konfiguraciju XML virtualnog stroja KVM:

# virsh dumpxml server.vpn.ru

Zanima nas blok s opisom procesora:

8 1000 / stroj hvm        

Kao što vidite, upravo smo odredili 8 vCPU. Promijenite konfiguraciju:

# virsh uredi server.vpn.ru

I poslije dodati:

   

gdje je:

  • domaćin-prolaz - način emulacije u kojem će se na virtualnom stroju prikazati virtualni procesor čvora klastera (čvorovi).
  • sockets = '1' - naznačite da je procesor 1
  • jezgre = '4' - navesti da procesor ima 4 jezgre
  • teme = '2' - naznačite da imamo 2 niti

Spremite konfiguracijsku datoteku i pokrenite VM. Prijavite se u gostujući VM sa sustavom Windows 10 i u upravitelju zadataka ili nadzoru resursa provjerite vidi li OS sva odabrana virtualna jezgra.

Također, svojstva sustava sada su počela prikazivati ​​fizički procesor glavnog računala Intel (R) Xeon® Silver 4114 CPU, nije virtualno.

Tako smo uspjeli riješiti problem s opterećenjem na VM-u, jer dvije jezgre nisu bile dovoljne za potpunu primjenu.

Konfiguriranje virtualnih procesora i broja jezgara u VMWare-u

Možete promijeniti način prezentacije vCPU za VMWare virtualni stroj iz vSphere Client sučelja.

  1. Isključite VM i otvorite njegove postavke;
  2. Prošireni odjeljak CPU;
  3. Promijenite konfiguraciju VM-a tako da gost OS vidi 2 procesora s 4 jezgre. Promjena vrijednosti Jezgre po utičnici prema 4. To znači da će gostujući OS vidjeti dva četverojezgrena procesora (2 utičnice s 4 jezgre);
  4. Spremite promjene i pokrenite VM.

NUMA arhitektura i virtualni vCPU

Postoji nekoliko drugih aspekata vCPU-a i dodjele kernela virtualnim računalima koje morate razumjeti..

Kad dodjeljujete jezgre na utičnicu, uzmite u obzir NUMA arhitektura (koristi se u većini modernih CPU-a). Ne preporučuje se dodijeliti vašem VM-u broj jezgara po utičnici (i ukupni broj vCPU-a) veći je od jezgara dostupnih na vašem fizičkom utičnici / procesoru (NUMA čvor). Kada se postavi na jedan fizički čvor NUMA, virtualni stroj moći će koristiti brzi lokalni RAM dostupan na određenom NUMA čvoru. U suprotnom, za dovršetak operacije procesi će morati pričekati odgovor iz drugog NUMA čvora (koji je nešto dulji).

Ako dodijelite dva odvojena virtualna utičnica VM-u, tada ih hipervizor može pokrenuti na različitim NUMA čvorovima. Što nije najbolji način da se utječe na VM performanse.

Ako broj potrebnih vCPU-a prelazi broj jezgara u jednoj fizičkoj utičnici (NUMA čvor), morate stvoriti nekoliko virtualnih utičnica (procesora) s potrebnim brojem jezgara. Također nije preporučljivo koristiti neparan broj procesora (bolje je dodati 1 vCPU)

To će uštedjeti performanse virtualnog stroja..

Na primjer, za 2 host procesora s 10 jezgara (uzimajući u obzir ukupno 40 vCPU-a) Hyper-Threading), prilikom konfiguriranja vCPU-a za VM-a optimalno je koristiti sljedeće konfiguracije:

Potrebna količina vCPUBroj virtualnih utičnica u postavkama VM-aBroj jezgara na virtualnom procesoru u postavkama VM-a
111
...
10110
11Nije optimalno
1226
...
20210
U besplatnoj verziji ESXi ne možete kreirati VM-ove s više od 8 vCPU-a.

Na primjer, VM-ovi s Microsoft SQL Server 2016 Enterprise Edition 16 vCPU u konfiguraciji 8 utičnica s 2 jezgre raditi će gore nego u konfiguraciji 2 utičnice s 8 jezgara.

Također, imajte na umu da su neke aplikacije licencirane na fizičkim utičnicama (kao što je to bio slučaj s starijim verzijama SQL Servera). Ponekad vam je isplativije licencirati jedan višejezgreni procesor nego nekoliko procesora s manje jezgara.

Moderne verzije sustava Windows Server licencirane su u virtualizacijskom okruženju na poseban način. Postoje i značajke za licenciranje procesora u VMWare vSphere.