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.
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 1jezgre = '4'
- navesti da procesor ima 4 jezgreteme = '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.
- Isključite VM i otvorite njegove postavke;
- Prošireni odjeljak CPU;
- 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);
- 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 vCPU | Broj virtualnih utičnica u postavkama VM-a | Broj jezgara na virtualnom procesoru u postavkama VM-a |
1 | 1 | 1 |
... | ||
10 | 1 | 10 |
11 | Nije optimalno | |
12 | 2 | 6 |
... | ||
20 | 2 | 10 |
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.