Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Part 1. Um CPU

Í þessari grein munum við tala um frammistöðuteljara af handahófi aðgangsminni (RAM) í vSphere.
Það virðist sem með minni sé allt skýrara en með örgjörvanum: ef frammistöðuvandamál koma upp á VM er erfitt að taka ekki eftir þeim. En ef þær birtast er miklu erfiðara að takast á við þær. En fyrst og fremst.

Smá kenning

Vinnsluminni sýndarvéla er tekið úr minni miðlarans sem VMs eru í gangi á. Þetta er alveg augljóst :). Ef vinnsluminni þjónsins er ekki nóg fyrir alla, byrjar ESXi að nota minnisendurheimtunartækni. Annars myndu VM stýrikerfin hrynja með vinnsluminni aðgangsvillum.

ESXi ákveður hvaða tækni á að nota eftir vinnsluminni:

Staða minnis

Landamæri

Afþreying

Hár

400% af minFree

Eftir að efri mörkum hefur verið náð er stórum minnissíðum skipt í litlar (TPS starfar í venjulegri stillingu).

Hreinsa

100% af minFree

Stórum minnissíðum er skipt í litlar, TPS er þvingað.

Soft

64% af minFree

TPS + blöðru

Hard

32% af minFree

TPS + Þjappa + Skipta

Low

16% af minFree

Þjappa + Skipta + Loka

Source

minFree er vinnsluminni sem þarf til að hypervisor geti keyrt.

Allt að ESXi 4.1 að meðtöldum var minFree sjálfgefið fastur - 6% af vinnsluminni miðlarans (hægt var að breyta hlutfallinu með Mem.MinFreePct valkostinum á ESXi). Í síðari útgáfum, vegna vaxandi minnis á netþjónum, byrjaði að reikna minFree út frá minnismagni hýsilsins, en ekki sem fast prósentugildi.

MinFree gildið (sjálfgefið) er reiknað út sem hér segir:

Hlutfall af minni sem er frátekið fyrir minFree

Minnissvið

6%

0-4 GB

4%

4-12 GB

2%

12-28 GB

1%

Eftirstandandi minni

Source

Til dæmis, fyrir miðlara með 128 GB af vinnsluminni, mun MinFree gildið vera sem hér segir:
MinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB
Raunverulegt gildi getur verið mismunandi um nokkur hundruð MB, allt eftir netþjóni og vinnsluminni.

Hlutfall af minni sem er frátekið fyrir minFree

Minnissvið

Gildi fyrir 128 GB

6%

0-4 GB

245,76 MB

4%

4-12 GB

327,68 MB

2%

12-28 GB

327,68 MB

1%

Eftirstandandi minni (100 GB)

1024 MB

Venjulega, fyrir afkastamikla bása, getur aðeins High State talist eðlilegt. Fyrir prófunar- og þróunarbekki gætu Clear/Soft ástand verið ásættanlegt. Ef vinnsluminni á hýsingaraðilanum er minna en 64% MinFree, þá eiga VM vélarnar sem keyra á honum örugglega í frammistöðuvandamálum.

Í hverju ríki eru ákveðnar aðferðir til að endurheimta minni notaðar, allt frá TPS, sem hefur nánast engin áhrif á afköst VM, til skiptis. Ég skal segja þér meira frá þeim.

Transparent Page Sharing (TPS). TPS er í grófum dráttum aftvíföldun á vinnsluminni síðum sýndarvéla á þjóninum.

ESXi leitar að sams konar vinnsluminni síðum sýndarvélar með því að telja og bera saman kjötkássa summu síðna og fjarlægir tvíteknar síður og kemur í staðinn fyrir tilvísanir í sömu síðu í líkamlegu minni þjónsins. Fyrir vikið minnkar líkamlega minnisnotkun og hægt er að ná yfiráskrift á minni með nánast engin áhrif á frammistöðu.

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni
Source

Þessi vélbúnaður virkar aðeins fyrir minnissíður sem eru 4 KB að stærð (litlar síður). Yfirvísirinn reynir ekki einu sinni að afrita síður 2 MB að stærð (stórar síður): líkurnar á að finna eins síður af þessari stærð eru ekki miklar.

Sjálfgefið er að ESXi úthlutar minni á stórar síður. Að skipta stórum síðum niður í litlar síður hefst þegar háum stöðuþröskuldi er náð og er þvingað fram þegar hreinsa ástandinu er náð (sjá yfirsýnarstöðutöflu).

Ef þú vilt að TPS byrji að vinna án þess að bíða eftir að hýsilminnið sé fullt þarftu að stilla gildið í Advanced Options ESXi „Mem.AllocGuestLargePage“ í 0 (sjálfgefið 1). Þá verður úthlutun á stórum minnissíðum fyrir sýndarvélar óvirk.

Síðan í desember 2014, í öllum útgáfum ESXi, er TPS á milli VMs sjálfgefið óvirkt, þar sem varnarleysi fannst sem fræðilega gerir einum VM aðgang að vinnsluminni annars VM. Upplýsingar hér. Ég hef ekki rekist á upplýsingar um hagnýta útfærslu á því að nýta TPS varnarleysið.

TPS stefnu er stjórnað með háþróaðri valkosti „Mem.ShareForceSalting“ á ESXi:
0 - Inter-VM TPS. TPS virkar fyrir síður mismunandi VMs;
1 - TPS fyrir VMs með sama "sched.mem.pshare.salt" gildi í VMX;
2 (sjálfgefið) – Intra-VM TPS. TPS virkar fyrir síður inni í VM.

Það er örugglega skynsamlegt að slökkva á stórum síðum og virkja Inter-VM TPS á prófunarbekkjum. Þetta er einnig hægt að nota fyrir standar með miklum fjölda svipaðra VMs. Til dæmis, á standum með VDI, getur sparnaður í líkamlegu minni numið tugum prósenta.

Minni blöðruflug. Loftbelgur er ekki lengur eins skaðlaus og gagnsæ tækni fyrir VM stýrikerfið og TPS. En ef það er notað á réttan hátt geturðu lifað og jafnvel unnið með Ballooning.

Ásamt Vmware Tools er sérstakur bílstjóri sem heitir Balloon Driver (aka vmmemctl) settur upp á VM. Þegar hypervisorinn byrjar að verða uppiskroppa með líkamlegt minni og fer í mjúkt ástand, biður ESXi VM að endurheimta ónotað vinnsluminni í gegnum þennan blöðrubílstjóra. Ökumaðurinn vinnur aftur á móti á stýrikerfisstigi og biður um laust minni frá því. Yfirsýnarmaðurinn sér hvaða síður af líkamlegu minni blöðrubílstjórinn hefur upptekið, tekur minni úr sýndarvélinni og skilar því til gestgjafans. Það eru engin vandamál með notkun stýrikerfisins, þar sem á stýrikerfisstigi er minnið upptekið af blöðrubílstjóranum. Sjálfgefið er að Balloon Driver getur tekið allt að 65% af VM minni.

Ef VMware Tools eru ekki uppsett á VM eða Ballooning er óvirk (ég mæli ekki með því, en það er KB:), yfirsýnarmaðurinn skiptir strax yfir í strangari tækni til að fjarlægja minni. Ályktun: vertu viss um að VMware Tools séu á VM.

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni
Hægt er að athuga virkni Balloon Driver frá stýrikerfinu í gegnum VMware Tools.

Minnisþjöppun. Þessi tækni er notuð þegar ESXi nær hörðu ástandi. Eins og nafnið gefur til kynna reynir ESXi að þjappa 4KB síðu af vinnsluminni í 2KB og losar þannig um pláss í líkamlegu minni þjónsins. Þessi tækni eykur verulega aðgangstímann að innihaldi VM vinnsluminni síðna, þar sem síðan verður fyrst að vera þjappað niður. Stundum er ekki hægt að þjappa öllum síðum saman og ferlið sjálft tekur nokkurn tíma. Þess vegna er þessi tækni ekki mjög áhrifarík í framkvæmd.

Minnisskipti. Eftir stuttan áfanga af minnisþjöppun, skiptir ESXi nánast óhjákvæmilega (ef VMs hafa ekki flutt til annarra véla eða ekki er slökkt á þeim) yfir í skipti. Og ef það er mjög lítið minni eftir (Lágt ástand), þá hættir hypervisor líka að úthluta minnissíðum til VM, sem getur valdið vandamálum í gestastýrikerfi VM.

Svona virkar skipti. Þegar þú kveikir á sýndarvél er búið til skrá með .vswp endingunni fyrir hana. Það er jafnstórt og óaftekið vinnsluminni VM: þetta er munurinn á stilltu og fráteknu minni. Þegar skipti er í gangi skiptir ESXi minnissíðum sýndarvéla inn í þessa skrá og byrjar að vinna með hana í stað líkamlegs minnis þjónsins. Auðvitað er slíkt "RAM" minni nokkrum stærðargráðum hægara en raunverulegt minni, jafnvel þó að .vswp sé á hraðri geymslu.

Ólíkt Ballooning, þegar ónotaðar síður eru teknar úr VM, með skiptisíðum sem eru virkan notuð af stýrikerfinu eða forritum inni í VM er hægt að færa yfir á disk. Fyrir vikið lækkar frammistaða VM niður í frostmark. VM virkar formlega og að minnsta kosti er hægt að slökkva á honum almennilega frá stýrikerfinu. Ef þú ert þolinmóður 😉

Ef VMs hafa farið í Swap er þetta neyðarástand sem best er að forðast ef mögulegt er.

Grunnteljarar fyrir sýndarvélaminni

Svo komumst við að aðalatriðinu. Til að fylgjast með minnisstöðu VM eru eftirfarandi teljarar:

Virk — sýnir magn af vinnsluminni (KB) sem VM fékk aðgang að á fyrra mælitímabili.

Notkun — það sama og Active, en sem hlutfall af stilltu vinnsluminni VM. Reiknað með eftirfarandi formúlu: virk ÷ sýndarvél stillt minni stærð.
Mikil notkun og Virk, í sömu röð, eru ekki alltaf vísbending um vandamál með afköst VM. Ef VM notar minni árásargjarnan (að minnsta kosti aðgangur að því), þýðir það ekki að það sé ekki nóg minni. Frekar er þetta ástæða til að skoða hvað er að gerast í stýrikerfinu.
Það er staðlað viðvörun fyrir minnisnotkun fyrir VM:

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Hluti — magn VM vinnsluminni sem aftvítekið er með TPS (innan VM eða á milli VM).

Leyfð — magn af líkamlegu minni hýsils (KB) sem var úthlutað til VM. Virkjar Shared.

Neytt (Granted - Shared) - magn líkamlegs minnis (KB) sem VM eyðir frá hýsilnum. Inniheldur ekki Shared.

Ef hluti af VM minni er ekki gefinn úr líkamlegu minni hýsilsins, heldur úr skiptaskrá, eða minni er tekið úr VM í gegnum blöðruökumann, er ekki tekið tillit til þessarar upphæðar í Veitt og notað.
Hátt veitt og neytt gildi eru fullkomlega eðlileg. Stýrikerfið tekur smám saman minni frá hypervisor og gefur það ekki til baka. Með tímanum, í virku keyrandi VM, nálgast gildi þessara teljara magn af stilltu minni og haldast þar.

Núll — magn VM vinnsluminni (KB), sem inniheldur núll. Slíkt minni er talið ókeypis af yfirsýnaranum og hægt er að gefa öðrum sýndarvélum. Eftir að gestastýrikerfið hefur skrifað eitthvað í núllstillt minni fer það í Consumed og kemur ekki aftur.

Frátekin kostnaður — magn VM vinnsluminni, (KB) frátekið af hypervisor fyrir VM rekstur. Þetta er lítið magn, en það verður að vera tiltækt á hýsingaraðilanum, annars fer VM ekki í gang.

Balloon — magn vinnsluminni (KB) sem er fjarlægt úr VM með því að nota Balloon Driver.

Þjappað — magn vinnsluminni (KB) sem var þjappað.

Skipt um — magn vinnsluminni (KB), sem, vegna skorts á líkamlegu minni á þjóninum, færðist yfir á disk.
Teljarar fyrir blöðrur og önnur minni endurheimt eru núll.

Svona lítur línuritið út með minnisteljara á venjulega virka VM með 150 GB af vinnsluminni.

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Á grafinu hér að neðan hefur VM augljós vandamál. Fyrir neðan línuritið má sjá að fyrir þennan VM voru notuð allar þær aðferðir sem lýst er til að vinna með vinnsluminni. Loftbelgur fyrir þennan VM er miklu stærri en Consumed. Reyndar er VM meira dautt en lifandi.

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

ESXTOP

Eins og með CPU, ef við viljum fljótt meta ástandið á gestgjafanum, sem og gangverki hans með allt að 2 sekúndna millibili, ættum við að nota ESXTOP.

ESXTOP Memory skjárinn er kallaður upp með „m“ takkanum og lítur svona út (reitir B,D,H,J,K,L,O valdir):

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Eftirfarandi breytur munu vekja áhuga okkar:

Mem overcommit avg — meðalverðmæti ofáskriftar minnis á hýsilinn í 1, 5 og 15 mínútur. Ef það er yfir núlli, þá er þetta ástæða til að skoða hvað er að gerast, en ekki alltaf vísbending um vandamál.

Í röðum PMEM/MB и VMKMEM/MB — upplýsingar um líkamlegt minni miðlarans og minni sem VMkernel er tiltækt. Meðal áhugaverðra hluta hér geturðu séð minfree gildið (í MB), hýsingarríkið í minni (í okkar tilfelli, hátt).

Í línu NUMA/MB þú getur séð dreifingu vinnsluminni yfir NUMA hnúta (innstungur). Í þessu dæmi er dreifingin ójöfn, sem er í grundvallaratriðum ekki mjög gott.

Eftirfarandi er almenn tölfræði netþjóns fyrir tækni til að endurheimta minni:

PSHARE/MB — þetta eru TPS tölfræði;

SWAP/MB — Skipta um notkunartölfræði;

ZIP/MB — tölfræði um þjöppun minnissíðu;

MEMCTL/MB — Notkunartölfræði blöðruökumanns.

Fyrir einstakar VMs gætum við haft áhuga á eftirfarandi upplýsingum. Ég faldi nöfn VM-anna til að rugla ekki áhorfendur :). Ef ESXTOP mæligildið er svipað og teljarinn í vSphere mun ég gefa upp samsvarandi teljara.

MEMSZ — magn af minni stillt á VM (MB).
MEMSZ = GRANT + MCTLSZ + SWCUR + ósnortið.

GRAN — Veitt í MB.

TCHD — Virkt í MByte.

MCTL? — hvort Balloon Driver sé settur upp á VM.

MCTLSZ — Blaðra til MB.

MCTLGT — magn vinnsluminni (MBytes) sem ESXi vill fjarlægja úr VM í gegnum blöðrubílstjórann (Memctl Target).

MCTLMAX — hámarksmagn vinnsluminni (MBytes) sem ESXi getur fjarlægt úr VM í gegnum blöðruökumanninn.

SWCUR — núverandi magn af vinnsluminni (MBytes) sem úthlutað er til VM úr skiptiskránni.

S.W.G.T. — magn vinnsluminni (MBytes) sem ESXi vill gefa VM úr skiptiskránni (Swap Target).

Þú getur líka skoðað ítarlegri upplýsingar um NUMA svæðisfræði VM í gegnum ESXTOP. Til að gera þetta skaltu velja reiti D, G:

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

LÍTIÐ – NUMA hnútar sem VM er staðsettur á. Hér geturðu strax tekið eftir breiðum vm, sem passa ekki á einn NUMA hnút.

NRMEM – hversu mörg megabæti af minni VM tekur frá ytri NUMA hnútnum.

NLMEM – hversu mörg megabæti af minni VM tekur frá staðbundnum NUMA hnút.

N%L – hlutfall af VM minni á staðbundnum NUMA hnút (ef minna en 80%, geta frammistöðuvandamál komið upp).

Minni á hypervisor

Ef örgjörvateljarar fyrir hypervisor hafa yfirleitt ekki sérstakan áhuga, þá er ástandið hið gagnstæða með minni. Mikil minnisnotkun á VM gefur ekki alltaf til kynna afkastavandamál, en mikil minnisnotkun á ofurvisor kveikir á minnisstjórnunartækni og veldur vandamálum með afköstum VM. Þú þarft að fylgjast með viðvörunum um notkun hýsilminni og koma í veg fyrir að VMs komist inn í Swap.

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Afskipta

Ef VM er veiddur í Swap minnkar árangur hans verulega. Ummerki um loftbelg og þjöppun hverfa fljótt eftir að ókeypis vinnsluminni birtist á hýsingaraðilanum, en sýndarvélin er ekkert að flýta sér að fara aftur úr Swap yfir í vinnsluminni þjónsins.
Fyrir ESXi 6.0 var eina áreiðanlega og fljótlega leiðin til að fjarlægja VM úr Swap að endurræsa (nánar tiltekið, slökkva/kveikja á ílátinu). Byrjað á ESXi 6.0, þó að það sé ekki alveg opinbert, hefur virka og áreiðanleg leið til að fjarlægja VM úr Swap birst. Á einni af ráðstefnunum gat ég talað við einn af VMware verkfræðingunum sem bera ábyrgð á CPU Scheduler. Hann staðfesti að aðferðin sé nokkuð virka og örugg. Í okkar reynslu voru engin vandamál með það heldur.

Raunverulegar skipanir til að fjarlægja VM úr Swap lýst Duncan Epping. Ég mun ekki endurtaka nákvæma lýsingu, ég mun bara gefa dæmi um notkun þess. Eins og þú sérð á skjámyndinni, nokkrum tíma eftir að tilgreind skipun er framkvæmd, hverfur Swap á VM.

Greining á frammistöðu VM í VMware vSphere. Part 2: Minni

Ráð til að stjórna vinnsluminni á ESXi

Að lokum eru hér nokkur ráð sem hjálpa þér að forðast vandamál með afköst VM vegna vinnsluminni:

  • Forðastu ofáskrift að vinnsluminni í afkastamiklum klösum. Það er ráðlegt að hafa alltaf ~20-30% af lausu minni í þyrpingunni þannig að DRS (og stjórnandi) hafi svigrúm til að athafna sig og VMs fari ekki í Swap á meðan á flutningi stendur. Einnig má ekki gleyma framlegð fyrir bilanaþol. Það er óþægilegt þegar, þegar einn netþjónn bilar og VM er endurræst með HA, fara sumar vélarnar líka í Swap.
  • Í mjög samþættum innviðum, reyndu EKKI að búa til VMs með minni sem er meira en helmingur hýsilminnsins. Þetta mun aftur hjálpa DRS að dreifa sýndarvélum yfir klasaþjóna án vandræða. Þessi regla er auðvitað ekki algild :).
  • Passaðu þig á viðvörun um notkun hýsilminni.
  • Ekki gleyma að setja upp VMware Tools á VM og ekki slökkva á Ballooning.
  • Íhugaðu að virkja Inter-VM TPS og slökkva á stórum síðum í VDI og prófunarumhverfi.
  • Ef VM er að upplifa afköst vandamál, athugaðu hvort það notar minni frá ytri NUMA hnút.
  • Fjarlægðu VM úr Swap eins fljótt og auðið er! Meðal annars, ef VM er í Swap, þjáist geymslukerfið af augljósum ástæðum.

Það er allt fyrir mig um vinnsluminni. Hér að neðan eru tengdar greinar fyrir þá sem vilja fara dýpra. Næsta grein verður tileinkuð geymslu.

gagnlegir krækjurhttp://www.yellow-bricks.com/2015/03/02/what-happens-at-which-vsphere-memory-state/
http://www.yellow-bricks.com/2013/06/14/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up/
https://www.vladan.fr/vmware-transparent-page-sharing-tps-explained/
http://www.yellow-bricks.com/2016/06/02/memory-pages-swapped-can-unswap/
https://kb.vmware.com/s/article/1002586
https://www.vladan.fr/what-is-vmware-memory-ballooning/
https://kb.vmware.com/s/article/2080735
https://kb.vmware.com/s/article/2017642
https://labs.vmware.com/vmtj/vmware-esx-memory-resource-management-swap
https://blogs.vmware.com/vsphere/2013/10/understanding-vsphere-active-memory.html
https://www.vmware.com/support/developer/converter-sdk/conv51_apireference/memory_counters.html
https://docs.vmware.com/en/VMware-vSphere/6.5/vsphere-esxi-vcenter-server-65-monitoring-performance-guide.pdf

Heimild: www.habr.com

Bæta við athugasemd