Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Kui haldate virtuaalset infrastruktuuri, mis põhineb VMware vSphere'il (või mõnel muul tehnoloogiavirnal), kuulete tõenäoliselt sageli kasutajatelt kaebusi: "Virtuaalne masin on aeglane!" Selles artiklite sarjas analüüsin toimivusmõõdikuid ja räägin teile, mis ja miks see aeglustub ning kuidas tagada, et see ei aeglustuks.

Vaatlen järgmisi virtuaalse masina jõudluse aspekte:

  • PROTSESSOR,
  • RAM
  • DISK,
  • Võrk.

Alustan CPU-st.

Toimivuse analüüsimiseks vajame:

  • vCenter Performance loendurid – jõudlusloendurid, mille graafikuid saab vaadata vSphere Clienti kaudu. Teave nende loendurite kohta on saadaval igas kliendi versioonis ("paks" klient C#-s, veebiklient Flexis ja veebiklient HTML5-s). Nendes artiklites kasutame C# kliendi ekraanipilte ainult seetõttu, et need näevad miniatuurselt paremad välja :)
  • ESXTOP – utiliit, mis töötab ESXi käsurealt. Selle abil saate jõudlusloendurite väärtused reaalajas hankida või need teatud perioodiks üles laadida .csv-faili edasiseks analüüsiks. Järgmisena räägin teile selle tööriista kohta lähemalt ja pakun mitmeid kasulikke linke selleteemalistele dokumentidele ja artiklitele.

Natuke teooriat

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

ESXi puhul vastutab iga vCPU (virtuaalse masina tuuma) töö eest eraldi protsess – VMware terminoloogias maailm. On ka teenindusprotsesse, kuid VM-i jõudluse analüüsimise seisukohalt on need vähem huvitavad.

ESXi protsess võib olla ühes neljast olekust:

  • jooks – protsess teeb kasulikku tööd.
  • Oota – protsess ei tööta (jõude) või ootab sisendit/väljundit.
  • Costop – seisund, mis esineb mitmetuumalistes virtuaalmasinates. See juhtub siis, kui hüperviisori CPU planeerija (ESXi CPU Scheduler) ei saa ajastada kõigi aktiivsete virtuaalmasina tuumade samaaegset käitamist füüsilise serveri tuumades. Füüsilises maailmas töötavad kõik protsessori tuumad paralleelselt, VM-i sees olev külalis-OS eeldab sarnast käitumist, seega peab hüperviisor aeglustama VM-i tuumasid, millel on võimalus oma taktitsüklit kiiremini lõpetada. ESXi kaasaegsetes versioonides kasutab protsessori planeerija mehhanismi, mida nimetatakse lõdvemaks kaasplaneerimiseks: hüperviisor arvestab lõhet "kiireima" ja "aeglaseima" virtuaalmasina tuuma vahel (kalduvus). Kui vahe ületab teatud läve, läheb kiire tuum kulumisolekusse. Kui VM-i tuumad veedavad selles olekus palju aega, võib see põhjustada jõudlusprobleeme.
  • Valmis – protsess läheb sellesse olekusse, kui hüperviisor ei suuda selle täitmiseks ressursse eraldada. Kõrged valmisväärtused võivad põhjustada VM-i jõudlusprobleeme.

Põhilised virtuaalse masina protsessori jõudluse loendurid

Protsessori kasutus, %. Näitab CPU kasutuse protsenti antud perioodil.

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Kuidas analüüsida? Kui VM kasutab pidevalt 90% CPU-d või tippe on kuni 100%, on meil probleeme. Probleemid võivad väljenduda mitte ainult rakenduse "aeglases" töös VM-is, vaid ka VM-i ligipääsmatus võrgu kaudu. Kui seiresüsteem näitab, et VM kukub perioodiliselt välja, pöörake tähelepanu CPU kasutuse graafiku tippudele.

On olemas standardne häire, mis näitab virtuaalmasina protsessori koormust:

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Mida teha? Kui VM-i CPU-kasutus käib pidevalt läbi katuse, siis võiks mõelda vCPU-de arvu suurendamisele (kahjuks see alati ei aita) või VM-i teisaldamisele võimsamate protsessoritega serverisse.

Protsessori kasutus MHz-des

Diagrammides vCenter Usage % näete ainult kogu virtuaalmasinat; üksikute tuumade jaoks pole graafikuid (Esxtopis on tuumade jaoks % väärtused). Iga tuuma kohta näete kasutust MHz-des.

Kuidas analüüsida? Juhtub, et rakendus pole mitmetuumalise arhitektuuri jaoks optimeeritud: see kasutab 100% ainult ühte tuuma ja ülejäänud on ilma koormuseta jõude. Näiteks vaikesätete korral käivitab MS SQL protsessi ainult ühes tuumas. Selle tulemusena ei aeglustub varundamine mitte ketaste aeglase kiiruse tõttu (selle üle kasutaja algselt kurtis), vaid seetõttu, et protsessor ei saa hakkama. Probleem lahendati parameetrite muutmisega: varukoopiad hakkasid paralleelselt jooksma mitmes failis (vastavalt mitmes protsessis).

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU
Näide südamike ebaühtlasest koormusest.

Samuti on olukord (nagu ülaltoodud graafikul), kus südamikud on koormatud ebaühtlaselt ja mõnel neist on piigid 100%. Nagu ka ainult ühe tuuma laadimisel, ei tööta CPU kasutamise häire (see on kogu VM-i jaoks), kuid esineb jõudlusprobleeme.

Mida teha? Kui virtuaalmasinas olev tarkvara laadib tuumasid ebaühtlaselt (kasutab ainult ühte tuuma või osa tuumadest), pole mõtet nende arvu suurendada. Sel juhul on parem VM teisaldada võimsamate protsessoritega serverisse.

Võite proovida kontrollida ka serveri BIOS-is energiatarbimise sätteid. Paljud administraatorid lubavad BIOS-is suure jõudlusega režiimi ja keelavad seeläbi C-olekute ja P-olekute energiasäästutehnoloogiad. Tänapäevased Inteli protsessorid kasutavad Turbo Boost tehnoloogiat, mis suurendab üksikute protsessorituumade sagedust teiste tuumade arvelt. Kuid see töötab ainult siis, kui energiasäästutehnoloogiad on sisse lülitatud. Kui me need keelame, ei saa protsessor vähendada laadimata tuumade energiatarbimist.

VMware soovitab mitte keelata serverites energiasäästutehnoloogiaid, vaid valida režiimid, mis jätavad toitehalduse võimalikult suures osas hüperviisori hooleks. Sel juhul peate hüperviisori energiatarbimise sätetes valima High Performance.

Kui teie infrastruktuuris on üksikuid VM-e (või VM-i tuumasid), mis nõuavad suuremat protsessori sagedust, võib energiatarbimise õige reguleerimine oluliselt parandada nende jõudlust.

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

CPU valmis

Kui VM-i tuum (vCPU) on olekus Valmis, ei tee see kasulikku tööd. See seisund ilmneb siis, kui hüperviisor ei leia vaba füüsilist tuuma, millele saab määrata virtuaalmasina vCPU protsessi.

Kuidas analüüsida? Tavaliselt, kui virtuaalmasina tuumad on rohkem kui 10% ajast valmisolekus, märkate jõudlusprobleeme. Lihtsamalt öeldes ootab VM enam kui 10% ajast, kuni füüsilised ressursid muutuvad kättesaadavaks.

VCenteris saate vaadata kahte loendurit, mis on seotud protsessori valmidusega:

  • valmisolek,
  • Valmis.

Mõlema loenduri väärtusi saab vaadata nii kogu VM-i kui ka üksikute tuumade kohta.
Valmisolek näitab väärtust kohe protsentides, kuid ainult Reaalajas (viimase tunni andmed, mõõtmisintervall 20 sekundit). Parem on seda loendurit kasutada ainult probleemide otsimiseks "kuumad kandadel".

Valmis loenduri väärtusi saab vaadata ka ajaloolisest vaatenurgast. See on kasulik mustrite loomiseks ja probleemi sügavamaks analüüsimiseks. Näiteks kui virtuaalmasinas hakkavad teatud ajal esinema jõudlusprobleemid, saate võrrelda CPU Ready väärtuse intervalle selle serveri kogukoormusega, kus see VM töötab, ja võtta meetmeid koormuse vähendamiseks (kui DRS ebaõnnestub).

Valmisolekut näidatakse erinevalt valmisolekust mitte protsentides, vaid millisekundites. See on Summation tüüpi loendur, st see näitab, kui kaua VM-i tuum mõõtmisperioodi jooksul valmisolekus oli. Saate selle väärtuse teisendada protsendiks, kasutades lihtsat valemit:

(CPU valmisoleku summeerimisväärtus / (diagrammi vaikevärskendusintervall sekundites * 1000)) * 100 = protsessori valmisoleku %

Näiteks alloleval graafikul oleva virtuaalse masina puhul on valmisoleku tippväärtus kogu virtuaalmasina jaoks järgmine:

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Valmisoleku protsendi arvutamisel peaksite pöörama tähelepanu kahele punktile:

  • Kogu VM-i väärtus Valmis on kõigi tuumade Ready summa.
  • Mõõtmisintervall. Reaalajas on see 20 sekundit ja näiteks igapäevaste graafikute puhul 300 sekundit.

Aktiivse veaotsinguga võivad need lihtsad punktid kergesti kahe silma vahele jääda ja väärtuslikku aega raisata olematute probleemide lahendamisele.

Arvutame alloleva graafiku andmete põhjal Ready. (324474/(20*1000))*100 = 1622% kogu VM-i kohta. Kui vaatate südamikke, pole see nii hirmutav: 1622/64 = 25% südamiku kohta. Sel juhul on saaki üsna lihtne märgata: väärtus Valmis on ebareaalne. Aga kui me räägime 10–20% kogu mitme tuumaga VM-i kohta, siis võib iga tuuma väärtus jääda normi piiridesse.

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Mida teha? Kõrge Ready väärtus näitab, et serveril pole piisavalt protsessoriressursse virtuaalmasinate normaalseks tööks. Sellises olukorras ei jää üle muud, kui vähendada protsessori (vCPU:pCPU) ületellimust. Ilmselgelt on seda võimalik saavutada olemasolevate VM-ide parameetrite vähendamise või osa VM-ide migreerimisega teistesse serveritesse.

Kaaspeatus

Kuidas analüüsida? See loendur on samuti Summation tüüpi ja teisendatakse protsentideks samamoodi nagu Valmis:

(CPU kaaspeatuse summeerimisväärtus / (diagrammi vaikevärskendusintervall sekundites * 1000)) * 100 = CPU kaaspeatuse %

Siin tuleb tähelepanu pöörata ka VM-i tuumade arvule ja mõõtmisintervallile.
Costop olekus kernel kasulikku tööd ei tee. VM-i suuruse õige valiku ja serveri normaalse koormuse korral peaks ühispeatusloendur olema nullilähedane.

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU
Sel juhul on koormus selgelt ebanormaalne :)

Mida teha? Kui ühes hüperviisoris töötab mitu suure tuumaarvuga VM-i ja protsessoris on ületellimus, võib kaaspeatuse loendur suureneda, mis toob kaasa probleeme nende VM-ide jõudlusega.

Ühispeatus suureneb ka siis, kui ühe virtuaalse masina aktiivsed tuumad kasutavad lõime ühes füüsilise serveri tuumas, kus on lubatud hüpertreading. Selline olukord võib tekkida näiteks siis, kui virtuaalmasinal on rohkem südamikke, kui see töötab serveris, või kui VM-i jaoks on lubatud säte „PreferHT”. Saate selle seadistuse kohta lugeda siin.

Suurest kaaspeatusest tulenevate VM-i jõudlusega seotud probleemide vältimiseks valige VM-i suurus vastavalt selles VM-is töötava tarkvara tootja soovitustele ja selle füüsilise serveri võimalustele, kus VM töötab.

Ärge lisage tuumasid reservi; see võib põhjustada jõudlusprobleeme mitte ainult VM-i enda, vaid ka selle serveri naabrite jaoks.

Muud kasulikud protsessori mõõdikud

jooks – kui palju aega (ms) mõõtmisperioodi jooksul oli vCPU olekus RUN, st tegi tegelikult kasulikku tööd.

Idle – kui kaua (ms) mõõtmisperioodi jooksul oli vCPU passiivses olekus. Kõrged jõudeoleku väärtused pole probleem, vCPU-l polnud lihtsalt "midagi teha".

Oota – kui kaua (ms) mõõtmisperioodi jooksul oli vCPU ooteolekus. Kuna IDLE sisaldub selles loenduris, ei näita ka kõrged ooteväärtused probleemi. Aga kui Wait IDLE on madal, kui Wait on kõrge, tähendab see, et virtuaalne masin ootas sisend-/väljundtoimingute lõpetamist ja see võib omakorda viidata probleemile VM-i kõvaketta või mis tahes virtuaalse seadme jõudluses.

Max piiratud – kui kaua (ms) mõõtmisperioodi jooksul oli vCPU seadistatud ressursipiirangu tõttu Valmis olekus. Kui jõudlus on seletamatult madal, siis on kasulik kontrollida selle loenduri väärtust ja CPU limiiti VM-i seadetes. VM-idel võib tõepoolest olla piiranguid, millest te teadlik pole. Näiteks juhtub see siis, kui VM klooniti mallist, millele määrati protsessori limiit.

Vaheta ootamine – kui kaua ootas vCPU mõõtmisperioodi jooksul toimingut VMkernel Swapiga. Kui selle loenduri väärtused on üle nulli, on VM-il kindlasti jõudlusprobleemid. SWAP-ist räägime lähemalt RAM-loendurite artiklis.

ESXTOP

Kui vCenteri jõudlusloendurid sobivad hästi ajalooliste andmete analüüsimiseks, siis probleemi operatiivanalüüsi on parem teha ESXTOPis. Siin esitatakse kõik väärtused valmis kujul (pole vaja midagi tõlkida) ja minimaalne mõõtmisperiood on 2 sekundit.
CPU ESXTOP-ekraan kuvatakse klahviga "c" ja see näeb välja järgmine:

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Mugavuse huvides võite jätta ainult virtuaalse masina protsessid, vajutades klahvikombinatsiooni Shift-V.
Üksikute VM-i tuumade mõõdikute vaatamiseks vajutage klahvi „e” ja sisestage huvipakkuva VM-i GID (30919 alloleval ekraanipildil):

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Lubage mul lühidalt läbi vaadata vaikimisi esitatud veerud. Täiendavaid veerge saab lisada vajutades "f".

NWLD (maailmade arv) – protsesside arv rühmas. Rühma laiendamiseks ja iga protsessi mõõdikute vaatamiseks (näiteks mitmetuumalise VM-i iga tuuma kohta) vajutage klahvi „e”. Kui rühmas on rohkem kui üks protsess, on rühma mõõdikute väärtused võrdsed üksikute protsesside mõõdikute summaga.

%KASUTATUD – mitu serveri CPU tsüklit protsess või protsesside rühm kasutab.

% RUN – kui kaua oli mõõtmisperioodi jooksul protsess RUN olekus, s.o. tegi kasulikku tööd. See erineb %USED-st selle poolest, et see ei võta arvesse hüperlõime, sageduse skaleerimist ega süsteemiülesannetele kuluvat aega (%SYS).

%SYS – süsteemiülesannetele kulutatud aeg, näiteks: katkestuste töötlemine, I/O, võrgu toimimine jne. Väärtus võib olla kõrge, kui VM-il on suur sisend/väljund.

%OVRLP – kui palju aega kulus füüsiline tuum, millel VM-protsess töötab, teiste protsesside ülesannetele.

Need mõõdikud on üksteisega seotud järgmiselt:

%KASUTATUD = %RUN + %SYS – %OVRLP.

Tavaliselt on %KASUTATUD mõõdik informatiivsem.

OOTA – kui kaua mõõtmisperioodi jooksul oli protsess ooteolekus. Lubab IDLE.

%IDLE – kui kaua mõõtmisperioodi jooksul oli protsess IDLE olekus.

%SWPWT – kui kaua ootas vCPU mõõtmisperioodi jooksul toimingut VMkernel Swapiga.

% VMOOTA – kui kaua oli vCPU mõõtmisperioodi jooksul sündmuse (tavaliselt I/O) ooteolekus. Sarnast loendurit vCenteris pole. Kõrged väärtused viitavad probleemidele VM-i I/O-ga.

%OOTA = %VMWAIT + %IDLE + %SWPWT.

Kui VM ei kasuta VMkerneli vahetust, siis on jõudlusprobleemide analüüsimisel soovitatav vaadata %VMWAIT, kuna see mõõdik ei võta arvesse aega, mil VM ei teinud midagi (%IDLE).

%RDY – kui kaua mõõtmisperioodi jooksul oli protsess valmisolekus.

%CSTP – kui kaua oli protsess mõõtmisperioodi jooksul kulumisseisundis.

%MLMTD – kui kaua oli vCPU mõõtmisperioodi jooksul valmisolekus seatud ressursipiirangu tõttu.

%OOTA + %RDY + %CSTP + %RUN = 100% – VM-i tuum on alati ühes neist neljast olekust.

CPU hüperviisoril

vCenteril on ka hüperviisori jaoks protsessori jõudluse loendurid, kuid need pole midagi huvitavat – need on lihtsalt kõigi serveris olevate VM-ide loendurite summa.
Kõige mugavam viis CPU oleku vaatamiseks serveris on vahekaardil Kokkuvõte:

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Serveri ja ka virtuaalse masina jaoks on standardne häire:

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Kui serveri protsessori koormus on suur, hakkavad sellel töötavatel VM-idel esinema jõudlusprobleemid.

ESXTOPis kuvatakse ekraani ülaosas serveri protsessori koormusandmed. Lisaks standardsele protsessori koormusele, mis ei ole hüperviisorite jaoks väga informatiivne, on veel kolm mõõdikut:

CORE UTIL (%) - füüsilise serveri tuuma laadimine. See loendur näitab, kui kaua südamik mõõtmisperioodi jooksul tööd tegi.

PCPU UTIL (%) – kui hüperlõime on lubatud, on füüsilise tuuma kohta kaks lõime (PCPU). See mõõdik näitab, kui kaua kulus iga lõime töö lõpetamiseks.

KASUTATUD PCPU (%) – sama, mis PCPU UTIL(%), kuid võtab arvesse sageduse skaleerimist (kas tuumasageduse vähendamine energiasäästu eesmärgil või tuumsageduse suurendamine tänu Turbo Boost tehnoloogiale) ja hüperkeermestamine.

PCPU_USED% = PCPU_UTIL% * efektiivne südamiku sagedus / tuuma nimisagedus.

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU
Sellel ekraanipildil on mõnede tuumade puhul Turbo Boosti tõttu USED väärtus suurem kui 100%, kuna tuuma sagedus on nominaalsest kõrgem.

Paar sõna selle kohta, kuidas hüperlõime arvesse võtta. Kui protsesse teostatakse 100% ajast serveri füüsilise tuuma mõlemal lõimel, samas kui tuum töötab nimisagedusel, siis:

  • CORE UTIL südamiku jaoks on 100%,
  • PCPU UTIL mõlema lõime jaoks on 100%,
  • Mõlema lõime jaoks kasutatav PCPU on 50%.

Kui mõõtmisperioodil ei töötanud mõlemad keermed 100% ajast, siis nendel perioodidel, mil niidid töötasid paralleelselt, jagatakse südamike jaoks KASUTATUD PCPU pooleks.

ESXTOP-il on ka ekraan serveri protsessori energiatarbimise parameetritega. Siin näete, kas server kasutab energiasäästutehnoloogiaid: C-olekud ja P-olekud. Helistatakse klahviga "p":

Virtuaalse masina jõudluse analüüs VMware vSphere'is. 1. osa: CPU

Levinud protsessori jõudlusprobleemid

Lõpuks käsitlen VM-i protsessori jõudlusega seotud probleemide tüüpilisi põhjuseid ja annan lühikesi näpunäiteid nende lahendamiseks.

Tuuma taktsagedusest ei piisa. Kui ei ole võimalik oma VM-i võimsamatele tuumadele uuendada, võite proovida Turbo Boosti tõhusamaks töötamiseks toiteseadeid muuta.

VM-i vale suurus (liiga palju/vähe tuuma). Kui installite vähe südamikke, on VM-is suur protsessori koormus. Kui on palju, püüdke kõrget ühispeatust.

Suur protsessori ületellimus serveris. Kui VM-il on kõrge valmisoleku tase, vähendage CPU ületellimust.

Vale NUMA topoloogia suurtes VM-ides. VM-i (vNUMA) kuvatav NUMA topoloogia peab ühtima serveri NUMA topoloogiaga (pNUMA). Selle probleemi diagnostika ja võimalikud lahendused on kirjas näiteks raamatus "VMware vSphere 6.5 hostiressursside sügav sukeldumine". Kui te ei soovi süvitsi minna ja teil pole VM-i installitud OS-i litsentsimispiiranguid, tehke virtuaalsesse masinasse palju virtuaalseid pistikupesasid, üks tuum korraga. Sa ei kaota palju :)

See on minu jaoks protsessori kohta kõik. Esitada küsimusi. Järgmises osas räägin RAM-ist.

Kasulikud lingidhttp://virtual-red-dot.info/vm-cpu-counters-vsphere/
https://kb.vmware.com/kb/1017926
http://www.yellow-bricks.com/2012/07/17/why-is-wait-so-high/
https://communities.vmware.com/docs/DOC-9279
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/whats-new-vsphere65-perf.pdf
https://pages.rubrik.com/host-resources-deep-dive_request.html

Allikas: www.habr.com

Lisa kommentaar