Amikor virtuális gépeket hoz létre különféle hipervizorokon (VMWare, KVM, Hyper-V stb.), Észreveheti, hogy a virtuális gép néha nem látja az összes hozzárendelt virtuális magot (vCPU). Esetünkben 8 vCPU-t osztottak ki a KVM virtuális géphez, a Windows 10-et telepítették rá, azonban a Windows ezeket a kerneleket külön processzorokként határozta meg, amelyek közül csak 2 vCPU használható.
Tartalom:
- A Windows 10 virtuális gép nem látja az összes kernelt
- A Windows 10 támogatott processzorainak száma
- Virtuális kernelek és vCPU-k kezelése a KVM-ben
- Virtuális processzorok és a VMWare magjai számának konfigurálása
- NUMA architektúra és virtuális vCPU-k
A Windows 10 virtuális gép nem látja az összes kernelt
Ha megnyitja a Windows eszközkezelőt, ellenőrizheti, hogy az összes kiválasztott kernel 8 különálló típusú virtuális processzorként látható-e A QEMU virtuális CPU 2.5-es verziója.
Ugyanakkor a Windows 10 tulajdonságaiban (Számítógép -> Tulajdonságok) és a Feladatkezelésben látható, hogy a számítógépen csak 2 QEMU virtuális CPU érhető el..
Vagyis nem számít hány virtuális magot ad hozzá, a Windows 10 továbbra is csak kettőt használhat. Ugyanakkor a szomszédos virtuális szerver, amely ugyanazon a hipervizoron működik a Windows Server 2016-ban, mind a 16 vCPU-t látja hozzá.
A Windows 10 támogatott processzorainak száma
A probléma az, hogy a Windows asztali verziói (Windows 10 / 8.1 / 7) korlátozottak fizikai processzorok (aljzatok) maximális száma, melyik számítógép használható:
- Windows 10 Home - 1 CPU
- Windows 10 Professional - 2 CPU
- Windows 10 munkaállomás - akár 4 CPU
- Windows Server 2016 - akár 64 CPU
Ez a korlátozás azonban nem vonatkozik a kernelekre. Ie a jobb teljesítmény érdekében sok processzort használhat magok. A legtöbb hipervizor vCPU-kat biztosít processzorok, processzormagok vagy akár szálak formájában. Ie 8 virtuális CPU helyett vCPU-kat biztosíthat 2 aljzat formájában, egyenként 4 maggal. Fontoljuk meg, hogyan lehet megkülönböztetni a virtuális processzorokat a magok formájában a különféle virtualizációs rendszerekben, és hogyan lehet összekapcsolni a modern processzorokban alkalmazott NUMA architektúrával.
Virtuális kernelek és vCPU-k kezelése a KVM-ben
A virtuális gépemen KVM c Windows 10, az összes hozzárendelt virtuális mag külön processzornak tekinthető.
A virtuális géphez kiosztott összes CPU-erőforrás felhasználásához a virtuális gépnek nem 8 processzort kell látnia, hanem egy 8 magos processzort, 2 processzort 4 magos processzorral vagy 1 processzort 4 magos 2 szálakkal. Próbáljuk megváltoztatni a virtuális gépek hozzárendelésének módját a virtuális gépekhez a KVM-en.
Kapcsolja ki a virtuális gépet:
# virsh shutdown server.vpn.ru
- ahol a server.vpn.ru a virtuális gép neve.
Nyomtassa ki a KVM virtuális gép jelenlegi XML-konfigurációját:
# virsh dumpxml server.vpn.ru
Érdekel egy olyan blokk, amely leírja a processzorokat:
8 1000 / gép hvm
Mint láthatja, éppen 8 vCPU-t adott meg. A konfiguráció módosítása:
# virsh szerver.vpn.ru szerkesztése
És utána add:
ahol:
host-áteresztés
- emulációs mód, amelyben a fürtcsomópont (csomópontok) virtuális processzora megjelenik a virtuális gépen.aljzatok = '1'
- jelölje meg az 1. processzortmag = '4'
- jelölje meg, hogy a processzornak 4 magja vanszálak = '2'
- jelölje meg, hogy 2 szálunk van
Mentse a konfigurációs fájlt, és indítsa el a virtuális gépet. Jelentkezzen be a vendég virtuális gépbe Windows 10 operációs rendszerrel, és a Feladatkezelőben vagy az Erőforrásmonitorban ellenőrizze, hogy az operációs rendszer látja-e az összes kiválasztott virtuális kernelt.
A rendszer tulajdonságai mostantól kezdve megjelenítik az I. gazdagép fizikai processzort isntel (R) Xeon (R) ezüst 4114 CPU, nem virtuális.
Tehát sikerült megoldanunk a problémát a virtuális gép terhelésével, mivel a két mag nem volt elegendő a teljes alkalmazáshoz.
Virtuális processzorok és a VMWare magjai számának konfigurálása
Megváltoztathatja a vCPU megjelenítésének módját a VMWare virtuális gép számára a vSphere Client felületen.
- Kapcsolja ki a virtuális gépet és nyissa meg annak beállításait;
- Bontsa ki a részt CPU;
- Változtassa meg a virtuális gép konfigurációját úgy, hogy a vendég operációs rendszer 2 processzort és 4 magot látjon. Érték módosítása Magok aljzatonként 4-ig. Ez azt jelenti, hogy a vendég operációs rendszer két négymagos processzort fog látni (2 aljzat 4 maggal);
- Mentse el a módosításokat, és indítsa el a virtuális gépet.
NUMA architektúra és virtuális vCPU-k
A vCPU és a kernel hozzárendelése a virtuális gépekhez néhány további szempontból meg kell értenie..
Amikor a magokat egy aljzathoz rendeli, vegye figyelembe NUMA architektúra (a legtöbb modern CPU-ban használják). Nem ajánlott hozzárendelni a virtuális géphez a foglalatonkénti magok számát (és a vCPU-k számát) nagyobb, mint a fizikai csatlakozón / processzoron (NUMA csomópont) elérhető magok. Egyetlen NUMA fizikai csomópontra helyezve a virtuális gép képes lesz használni az adott NUMA csomóponton elérhető gyors helyi RAM-ot. Egyébként a művelet befejezéséhez a folyamatoknak várniuk kell egy másik NUMA csomópont válaszát (ami kissé hosszabb).
Ha két különálló virtuális aljzatot rendel hozzá a virtuális géphez, akkor a hipervizor különféle NUMA csomópontokon futtathatja őket. Ami nem a legjobb módja a virtuális gép teljesítményének befolyásolására.
Ha a szükséges vCPU-k száma meghaladja az 1 fizikai socket (NUMA csomópont) magjainak számát, akkor létre kell hoznia több virtuális socket (processzort) a szükséges számú maggal. Nem is tanácsos páratlan számú processzor használata (jobb, ha 1 vCPU-t ad hozzá)
Ez megtakarítja a virtuális gép teljesítményét..
Például 2 processzorgazda számára, 10 maggal (összesen 40 vCPU rendelkezésre áll, figyelembe véve a tényeket Hyper-Threading), amikor a vCPU-t virtuális gépekhez konfigurálja, optimális a következő konfigurációk használata:
Szükséges mennyiségű vCPU | A virtuális gépezet beállításainak virtuális aljzatok száma | A virtuális processzor magjainak száma a virtuális gép beállításaiban |
1 | 1 | 1 |
... | ||
10 | 1 | 10 |
11 | Nem optimális | |
12 | 2 | 6 |
... | ||
20 | 2 | 10 |
Például a Microsoft SQL Server 2016 Enterprise Edition 16 vCPU-val rendelkező virtuális gépek 8 makróból álló, 2 magos konfigurációban rosszabbul működnek, mint a 8 magot tartalmazó 2 foglalat konfigurációjában.
Ne felejtse el azt is, hogy egyes alkalmazások fizikai aljzatokra vannak licencelt (mint az SQL Server régebbi verziói esetében). Időnként egyszerűbb, ha egy többmagos processzort licenccel ad, mint több, kevesebb maggal rendelkező processzor számára.
A Windows Server modern verziói speciálisan licencbe kerülnek a virtualizációs környezetben. A VMWare vSphere processzorok licencelésére is vannak funkciók.