Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Kui haldate virtuaalset infrastruktuuri VMware vSphere'i (või mõne muu tehnoloogia virna) baasil, siis olete tõenäoliselt kuulnud kasutajatelt sageli kaebusi: „Virtuaalmasin töötab aeglaselt!“. Selles artiklite sarjas vaatan üle jõudlusnäitajaid ja räägin, mis ja miks „pidurdab“ ning kuidas sedasi ei juhtuks.

Kaatlen järgmisi virtuaalmasinate jõudlusaspekte:

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

Alustan CPU-st.

Jõudluse analüüsiks on meil vaja:

  • vCenter Performance Counters – jõudlusnäitajad, mille graafikuid saab vaadata vSphere kliendi kaudu. Teave nende näitajate kohta on saadaval kõigis kliendi versioonides („paks“ klient C#-s, veebiklient Flexis ja veebiklient HTML5-s). Nendes artiklites kasutame ekraanipilte C#-klientist, sest need näevad minipildis paremad välja:)
  • ESXTOP – tööriist, mis käivitatakse ESXi käsurealt. Selle abil saab reaalajas vaadata jõudlusnäitajaid või laadida need teatud ajavahemikus .csv-faili edasiste analüüside jaoks. Järgmisena räägin sellest tööriistast lähemalt ja jagan mitmeid kasulikke linke dokumentatsioonile ja artiklitele.

Veidi teooriat

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

ESXi-s vastutab iga vCPU (virtuaalmasina tuum) töö eest eraldi protsess – world VMware terminoloogias. Samuti on olemas teenusprotsessid, kuid VM-i jõudluse analüüsi seisukohalt on need vähem huvitavad.

Protsess ESXi-s võib olla ühes neljast olekust:

  • Käita – protsess täidab mingit kasulikku tööd.
  • Oota – protsess ei tee mingit tööd (idle) või ootab sisendi/väljundi järgi.
  • Costop – olek, mis tekib mitme tuumaga virtuaalmasinates. See tekib, kui hüpervõimekuse CPU ajastaja (ESXi CPU Scheduler) ei suuda planeerida füüsiliste serveri tuumade kõigi aktiivsete virtuaalmasinate tuumade samal ajal täitmist. Füüsilises maailmas töötavad kõik protsessori tuumad üheaegselt, virtuaalmasina sees olev külalisoperatsioonisüsteem eeldab sarnast käitumist, seetõttu peab hüpervõimekuse aeglustama virtuaalmasinate tuumasid, millel on võimalus tsükli kiiresti lõpetada. Kaasaegsetes ESXi versioonides kasutab CPU ajastaja mehhanismi, mida nimetatakse lõdvestatud koostööplaneerimiseks: hüpervõimekuse arvutab virtuaalmasina kõige „kiirema“ ja kõige „aeglasema“ tuuma (skew) vahe. Kui vahe ületab teatud läve, läheb „kiire“ tuum costop olekusse. Kui virtuaalmasinate tuumad viibivad sageli selles olekus, võib see põhjustada jõudlusprobleeme.
  • Valmis – protsess liigub sellesse olekusse, kui hüpervõimekusel pole ressursse selle täitmiseks. Suured ready väärtused võivad põhjustada jõudlusprobleeme virtuaalmasinatele.

Virtuaalmasina CPU jõudluse põhiklörid

CPU Kasutus, %. Näitab CPU kasutusprotsenti antud ajavahemiku jooksul.

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Kuidas analüüsida? Kui virtuaalmasin kasutab stabiilselt CPU-d 90% ulatuses või on harva 100% ulatuses, siis on meil probleem. Probleemid võivad avalduda mitte ainult virtuaalmasina sees oleva rakenduse „aeglasena“ töötamises, vaid ka virtuaalmasina võrgus puudumises. Kui jälgimisüsteem näitab, et virtuaalmasin katkeb perioodiliselt, pöörake tähelepanu CPU Kasutuse graafiku tõusudele.

On olemas standardne alarm, mis näitab virtuaalmasina CPU koormust:

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Mida teha? Kui virtuaalmasina CPU Kasutus ületab pidevalt lubatud piire, tasub mõelda vCPU arvu suurendamisele (kahjuks ei aita see alati) või virtuaalmasina paigutamisele teadlikumate protsessoritega serverisse.

CPU Kasutus Mhz-des

vCenteris saab vaadata kasutatavust % ulatuses ainult kogu virtuaalmasina kohta, eraldi tuumade graafikuid ei ole (Esxtop näitab protsentides tuumade väärtusi). Iga tuuma kohta saab vaadata Kasutust Mhz-des.

Kuidas analüüsida? Occasionally, an application may not be optimized for a multi-core architecture: it uses only one core at 100%, while the others remain idle. For example, with default MS SQL backup settings, the process runs on just one core. As a result, the backup slows down not because of slow disk speeds (which is what the user initially complained about), but because the processor is overwhelmed. The issue was resolved by changing the parameters: backups began to run concurrently in multiple files (and consequently in several processes).

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU
Example of uneven core load.

There can also be a situation (as shown in the above graph) where the cores are unevenly loaded, with some experiencing peaks of 100%. Just like when only one core is loaded, the CPU Usage alarm won't trigger (since it is for the entire VM), but performance issues will arise.

Mida teha? If the software in the virtual machine unevenly stresses the cores (using only one core or some cores), increasing their number is pointless. In this case, it's better to move the VM to a server with more powerful processors.

You might also want to check the power settings in the server's BIOS. Many administrators enable the High Performance mode in BIOS, thereby disabling the energy-saving technologies C-states and P-states. Modern Intel processors employ Turbo Boost technology, which increases the frequency of individual processor cores at the expense of others. However, it only works when power-saving technologies are enabled. If we disable them, the processor cannot reduce the energy consumption of the cores that are not under load.

VMware recommends not disabling energy-saving technologies on servers, but rather selecting modes that give the hypervisor maximum control over power consumption. In the hypervisor's power settings, it is necessary to choose High Performance.

If you have separate VMs (or VM cores) in your infrastructure that require an increased CPU frequency, correctly configuring the power consumption can significantly improve their performance.

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

CPU Ready (Readiness)

Kui VM-i tuum (vCPU) on valmisoleku olekus, ei tee see kasulikku tööd. See olek tekib siis, kui hüperviisor ei leia vabast füüsilisest tuumast, kuhu saaks määrata vCPU protsessi virtuaalmasinas.

Kuidas analüüsida? Tavaliselt, kui virtuaalmasina tuumad on valmisoleku olekus üle 10% ajast, märkate jõudlusprobleeme. Lihtsamalt öeldes ootab virtuaalmasin rohkem kui 10% ajast füüsiliste ressursside kättesaadavust.

vCenteris saab vaadata 2 mõõdikute arvu, mis on seotud CPU Ready-ga:

  • Valmidus,
  • Valmis.

Mõlema mõõdikute väärtusi saab vaadata nii kogu VM-i kohta kui ka eraldi tuumade kohta.
Valmidus näitab väärtust kohe protsentides, kuid ainult reaalajas (andmed viimase tunni jooksul, mõõtmisvahemaa 20 sekundit). Seda mõõdikut on parem kasutada ainult probleemide tuvastamiseks "kuumadel jälgedel".

Ready mõõdikute väärtusi saab vaadata ka ajalises perspektiivis. See on kasulik mustrite määramiseks ja probleemi sügavamaks analüüsimiseks. Näiteks, kui virtuaalmasinaga tekivad jõudlusprobleemid kindlal ajal, saab võrrelda tõstetud CPU Ready väärtuse vahemaid serveri üldise koormusega, kus see VM töötab, ja võtta meetmeid koormuse vähendamiseks (kui DRS ei ole toime tulnud).

Ready, erinevalt Valmidusest, ei näidata protsentides, vaid millisekundites. See on summatsioonimeeter, mis tähendab, et see näitab, kui kaua oli VM-i tuum mõõtmise perioodi jooksul valmisoleku olekus. Selle väärtuse protsentideks tõlgendamiseks võib kasutada lihtsat valemit:

(CPU ready summation value / (chart default update interval in seconds * 1000)) * 100 = CPU ready %

Näiteks virtuaalmasina jaoks järgnevas graafikus on kõrgeim Ready väärtus järgmine:

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Ready väärtuste protsentide arvutamisel tasub tähelepanu pöörata kahele asjaolule:

  • Valmis väärtus kogu VM-i kohta on tuumade järgi Ready väärtuste summa.
  • Mõõtmisvahemaa. Reaalajas – see on 20 sekundit, kuid näiteks päevagraafikutes – see on 300 sekundit.

Töötamise ajal võib neid lihtsaid asjaolusid kergesti tähelepanuta jätta ning kulutada väärtuslikku aega mitteeksisteerivate probleemide lahendamisele.

Kalkuleerime Ready andmete alusel allolevalt graafikult. (324474/(20*1000))*100 = 1622% tervele VM-ile. Kui vaadata tuumade kaupa, ei paista see enam nii kohutav: 1622/64 = 25% tuuma kohta. Antud juhul on petliku väärtuse leidmine üsna lihtne: Ready väärtus on ebarealistlik. Kuid kui jutt on 10–20% tervele VM-ile mitme tuumaga, võivad iga tuuma väärtused olla normaalses vahemikus.

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Mida teha? Kõrge Ready väärtus näitab, et serveril ei ole virtuaalmasinate normaalseks tööks piisavalt protsessorivõimsust. Sellises olukorras jääb üle vaid vähendada protsessori ülepakkumist (vCPU:pCPU). Ilmselgelt on seda võimalik saavutada olemasolevate VM-ide seadete vähendamisega või osa VM-ide migreerimisega teistele serveritele.

Co-stop

Kuidas analüüsida? Seda loenduri tüüpi nimetatakse samuti Summation ja see tõlgitakse protsentideks sarnaselt Ready-ga:

(CPU co-stop summation value / (graafiku vaikeseadistuse uuendamise intervall sekundites * 1000)) * 100 = CPU co-stop %

Siin tuleb samuti tähelepanu pöörata tuumade arvule VM-is ja mõõtmise intervallile.
Co-stop olekus tuum ei tee kasulikku tööd. Õige VM-i suuruse valiku ja serveri normaalse koormuse korral peaks co-stop loendur olema lähedal nullile.

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU
Antud juhul on koormus selgelt ebanormaalne :)

Mida teha? Kui ühel hüperviisoril töötab mitu VM-i suure hulga tuumadega ja on CPU ülepakkumine, võib co-stop loendur tõusta, mis toob kaasa jõudluse probleemid nende VM-ide osas.

Samuti tõuseb co-stop, kui aktiivsete tuumade jaoks ühel VM-il kasutatakse ühte füüsilist tuuma serveris hyper-treadinguga. Selline olukord võib tekkida näiteks siis, kui VM-il on rohkem tuumasid kui serveris, kus ta töötab, füüsiliselt olemas, või kui VM-il on sisse lülitatud seade 'preferHT'. Selle seadistuse kohta saab lugeda siin.

Keskenduge VM-i suuruse valimisele vastavalt tarkvara tootja soovitustele, mis töötab sellel VM-il, ja füüsilise serveri võimalustele, millel VM töötab, et vältida jõudlusega seotud probleeme kõrge co-stop'i tõttu.

Ärge lisage tuumasid varuks, see võib põhjustada jõudluse probleeme mitte ainult VM-i enda, vaid ka selle naabrite jaoks serveris.

Teised kasulikud CPU mõõdikud

Käita – kui kaua (ms) vCPU oli mõõtmise perioodil RUN olekus, see tähendab, et see tegi tegelikult kasulikku tööd.

Idle – kui palju aega (ms) mõõtmisperioodi jooksul vCPU oli olemises ooterežiimis. Suured Idle väärtused ei ole probleem, lihtsalt vCPU-l ei olnud "midagi teha".

Oota – kui palju aega (ms) mõõtmisperioodi jooksul vCPU oli olekus Wait. Kuna see loendur hõlmab ka IDLE, ei tähenda kõrged Wait väärtused probleemide olemasolu. Kui aga kõrge Wait ja madal IDLE, tähendab see, et VM ootas sisse-/väljundoperatsioonide lõpetamist, mis võib viidata kõvaketta või mõne virtuaalse seadme jõudluse probleemidele.

Max limited – kui palju aega (ms) mõõtmisperioodi jooksul vCPU oli olekus Ready seoses seadistatud ressursipiiranguga. Kui jõudlus on arusaamatult madal, on kasulik kontrollida seda loendurit ja CPU piiri VM-i seadistustes. VM-il võivad olla seatud piirangud, millest te ei tea. Näiteks toimub see siis, kui VM on kloonitud mallist, millel oli CPU piirang.

Swap wait – kui palju aega mõõtmisperioodi jooksul vCPU ootas operatsiooni VMkernel Swapiga. Kui selle loenduri väärtused on üle nulli, siis on VM-il kindlasti jõudlusprobleemid. SWAPist räägime põhjalikumalt mälukalkulaatorite artiklis.

ESXTOP

Kui vCenteri jõudlusloendurid on head ajalooliste andmete analüüsimiseks, siis probleemide operatiivne analüüs on parem teha ESXTOP'is. Siin on kõik väärtused esitatud valmis kujul (ei pea midagi tõlkima) ja minimaalne mõõtmisperiood on 2 sekundit.
ESXTOP ekraan CPU kohta avatakse klahviga "c" ja näeb välja järgmine:

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Mugavuse huvides võib jätta nähtavaks ainult virtuaalmasinate protsessid, vajutades Shift-V.
Kuna tahate vaadata eraldi VM-i tuumade mõõdikuid, vajutage "e" ja sisestage huvitava VM-i GID (30919 ekraanipildil allpool):

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Käin lühidalt üle tulbad, mis on vaikimisi esitatud. Täiendavaid tulbasid saab lisada, vajutades "f".

NWLD (Number of Worlds) – protsesside arv grupis. Et avada grupp ja näha mõõdikuid iga protsessi (näiteks igas tuumas mitme südamiku VM) jaoks, vajutage “e”. Kui grupis on rohkem kui üks protsess, siis grupi mõõdikute väärtused on võrdsed eraldi protsesside mõõdikute summaga.

%USED – kui palju serveri CPU tsükleid kasutab protsess või protsessigrupp.

%RUN – kui palju aega mõõtmisperioodi jooksul protsess viibis RUN olekus, st täitis kasulikku tööd. Erineb %USED-st selle poolest, et ei arvestata hyper-threadingi, sageduse skaleerimist ja aega, mis kulus süsteemsete ülesannete (%SYS) jaoks.

%SYS – aeg, mis kulus süsteemsete ülesannete, nagu katkestuste, sisendi/väljundi, võrgu töö jne, täitmiseks. Väärtus võib olla kõrge, kui VM-l on suur sisend/väljund.

%OVRLP – kui palju aega füüsiline tuum, millel protsess VM-is täidab, kulutas teiste protsesside ülesannetele.

Need mõõdikud on omavahel seotud järgmiselt:

%USED = %RUN + %SYS — %OVRLP.

Tavaliselt on mõõdik %USED informatiivsem.

%WAIT – kui palju aega mõõtmisperioodi jooksul protsess viibis Wait olekus. Kätkeb IDLE-d.

%IDLE – kui palju aega mõõtmisperioodi jooksul protsess viibis IDLE olekus.

%SWPWT – kui palju aega mõõtmisperioodi jooksul vCPU ootas operatsiooni VMkernel Swapiga.

%VMWAIT – kui palju aega mõõtmisperioodi jooksul vCPU viibis ooteseisundis (tavaliselt sisendi/väljundi). Sarnast loendurit ei ole vCenteris. Kerged kõrged väärtused viitavad probleemidele VM-i sisendi/väljundi osas.

%WAIT = %VMWAIT + %IDLE + %SWPWT.

Kui VM ei kasuta VMkernel Swapi, on tootlikkuse probleemide analüüsimisel mõistlik jälgida %VMWAIT-i, kuna see mõõdik ei arvesta aega, mil VM ei teinud midagi (%IDLE).

%RDY – kui palju aega mõõtmisperioodi jooksul protsess viibis Ready olekus.

%CSTP – kui palju aega mõõtmisperioodi jooksul protsess viibis costop olekus.

%MLMTD – kui palju aega mõõtmisperioodi jooksul vCPU viibis Ready olekus, kuna ressursipiirang oli paika pandud.

%WAIT + %RDY + %CSTP + %RUN = 100% – tuum VM-is viibib pidevalt mõnes neist neljast olekust.

CPU hüpervisoril

vCenteris on ka hüpervisoorele suunatud CPU tootlikkuse loendurid, kuid need ei ole midagi huvitavat – need on lihtsalt loendurite summa kõikidest VM-idest serveris.
CPU seisundi jälgimine serveris on kõige mugavam vahekaardil Summary:

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Serveril ning virtuaalsel masinal on standardne Alarm:

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Kui serveri CPU koormus on kõrge, tekivad probleemid nendele VM-idele, mis töötavad sellel.

ESXTOPis CPU serveri koormusandmed kuvatakse ekraani ülaosas. Lisaks standardsele CPU koormusele, mis hüperviisorite jaoks on vähem informatiivne, on kolm muud mõõdikut:

CORE UTIL(%) – füüsilise serveri tuuma koormus. See mõõdik näitab, kui kaua tuum mõõtmisperioodi jooksul tööd tegi.

PCPU UTIL(%) – kui hyper-threading on sisse lülitatud, peab igale füüsilisele tuumale olema kaks voogu (PCPU). See mõõdik näitab, kui kaua iga voog tööd tegi.

PCPU USED(%) – sama, mis PCPU UTIL(%), kuid arvestab sageduse skaleerimist (kas tuuma sageduse vähendamine energiasäästu eesmärgil või tuuma sageduse suurendamine Turbo Boosti tehnoloogia abil) ja hyper-threadingut.

PCPU_USED% = PCPU_UTIL% * efektiivne tuuma sagedus / nimisagedus.

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU
Sellel ekraanipildil on mõnedel tuumadel Turbo Boost'i tõttu USED väärtus üle 100%, kuna tuuma sagedus on kõrgem kui nimisagedus.

Mõned sõnad hyper-threadingu arvestamise kohta. Kui protsessid töötavad 100% aega mõlemal füüsilise tuuma voolul ja tuum töötab nimisagedusel, siis:

  • CORE UTIL tuuma jaoks on 100%,
  • PCPU UTIL mõlema voolu jaoks on 100%,
  • PCPU USED mõlema voolu jaoks on 50%.

Kui mõlemad vood ei töötanud 100% aega mõõtmisperioodi jooksul, jagatakse PCPU USED tuumade jaoks nendel perioodidel, kui vood töötasid paralleelselt, pooleks.

ESXTOPis on ka ekraan serveri CPU energia tarbimise parameetrite jaoks. Siit saab vaadata, kas server kasutab energiasäästutehnoloogiaid: C-states ja P-states. Kutsutakse esile klahviga «p»:

Virtuaalmasina jõudluse analüüs VMware vSphere'is. Osa 1: CPU

Standardprobleemid CPU jõudluses

Lõpetuseks toon välja tüüpilised põhjused, miks VM-i CPU jõudlusprobleeme esineb ja annan lühikesed näpunäited nende lahendamiseks:

Tuuma taktsagedus on liiga madal. Kui VMi ei ole võimalik viia võimekamatele tuumadele, võib proovida muuta energiatõhususe seadeid, et Turbo Boost töötaks paremini.

VM vale suurus (liialt palju/vähe tuumasid). Kui tuumasid on liiga vähe, on VM-il kõrge CPU koormus. Kui neid on liiga palju, tekib kõrge co-stop.

Serveri CPU ülevaatus on liiga suur. Kui VMil on kõrge Ready, vähendage CPU ülevaatust.

Vale NUMA-topoloogia suurtele VM-idele. NUMA-topoloogia, mida näeb VM (vNUMA), peab vastama serveri NUMA-topoloogiale (pNUMA). Probleemi diagnoosimise ja võimalike lahenduste kohta on kirjutatud näiteks raamatuis. «VMware vSphere 6.5 Host Resources Deep Dive». Kui te ei soovi süveneda ja kui teil ei ole litsentsipiiranguid VM-is installitud operatsioonisüsteemi osas, tehke VM-is palju virtuaalseid sokkide, igaühes ühe tuumaga. Suurt kaotust ei teki 🙂

Sellega on mul CPU teemal kõik. Esitage küsimusi. Järgmises osas räägin operatiivmäärast.

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: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster