Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

VMware vSphere-n (edo beste edozein teknologia-pilan) oinarritutako azpiegitura birtual bat administratzen baduzu, seguru asko erabiltzaileen kexak entzungo dituzu: "Makina birtuala motela da!" Artikulu sorta honetan errendimendu-neurriak aztertuko ditut eta esango dizut zer eta zergatik moteltzen den eta nola ziurtatu ez den moteltzen.

Makina birtualen errendimenduaren alderdi hauek hartuko ditut kontuan:

  • CPU,
  • RAM,
  • DISKOA,
  • Sarea.

CPUarekin hasiko naiz.

Errendimendua aztertzeko:

  • vCenter Errendimendu-kontagailuak – Errendimendu-kontagailuak, zeinen grafikoak vSphere Client-en bidez ikus daitezke. Kontadore hauei buruzko informazioa bezeroaren edozein bertsiotan dago eskuragarri (Β«lodiaΒ» C#-n, web-bezeroa Flex-en eta web-bezeroa HTML5-n). Artikulu hauetan C# bezeroaren pantaila-argazkiak erabiliko ditugu, soilik miniaturan itxura hobea dutelako :)
  • ESXTOP – ESXi komando-lerrotik exekutatzen den utilitate bat. Bere laguntzarekin, errendimendu-kontagailuen balioak denbora errealean lor ditzakezu edo aldi jakin baterako balio horiek .csv fitxategi batera kargatu ditzakezu azterketa gehiago egiteko. Jarraian, tresna honi buruzko informazio gehiago emango dizut eta gaiari buruzko dokumentazio eta artikuluetarako esteka erabilgarriak emango ditut.

Teoria apur bat

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

ESXi-n, prozesu bereizi bat - VMware terminologian mundua - vCPU bakoitzaren (makina birtualaren core) funtzionamenduaz arduratzen da. Zerbitzu-prozesuak ere badaude, baina VMren errendimendua aztertzearen ikuspuntutik ez dira hain interesgarriak.

ESXi-n prozesu bat lau egoera hauetako batean egon daiteke:

  • Korrika egin – prozesuak lan erabilgarria egiten du.
  • Itxaron – Prozesua ez da lanik egiten (inalik) edo sarrera/irteeraren zain dago.
  • Costop – Nukleo anitzeko makina birtualetan gertatzen den baldintza. Hipervisoreko PUZaren programatzaileak (ESXi CPU Scheduler) zerbitzari fisikoko nukleoetan makina birtual aktibo guztien aldibereko exekuzioa programatu ezin duenean gertatzen da. Mundu fisikoan, prozesadore-nukleo guztiek paraleloki funtzionatzen dute, VM barruko OS gonbidatuak antzeko portaera espero du, beraz, hipervisoreak erloju-zikloa azkarrago amaitzeko gaitasuna duten VM-ko nukleoak moteldu behar ditu. ESXi-ren bertsio modernoetan, PUZaren programatzaileak ko-programazio lasaia deritzon mekanismoa erabiltzen du: hipervisoreak makina birtualaren nukleo "azkarrenaren" eta "motelenaren" arteko tartea (okertua) hartzen du kontuan. Hutsuneak atalase jakin bat gainditzen badu, nukleo azkarra kostup egoeran sartzen da. VM nukleoek egoera honetan denbora asko igarotzen badute, errendimendu arazoak sor ditzake.
  • Ready – prozesua egoera honetan sartzen da hipervisoreak bere exekuziorako baliabideak esleitu ezin dituenean. Prest balio handiek VM errendimendu arazoak sor ditzakete.

Oinarrizko makina birtualeko CPUren errendimendu-kontagailuak

CPU erabilera, %. Epe jakin bateko CPU erabileraren ehunekoa erakusten du.

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Nola aztertu? VM batek koherentziaz erabiltzen badu CPU % 90ean edo % 100era arteko gailurrak badaude, orduan arazoak ditugu. Arazoak VM barneko aplikazioaren funtzionamendu "motelean" ez ezik, sarean VM-aren irisgarritasunik ezean ere adieraz daitezke. Jarraipen-sistemak erakusten badu VM-a aldian-aldian erortzen dela, arreta jarri PUZaren erabilera grafikoko gailurrei.

Alarma estandar bat dago makina birtualaren CPU karga erakusten duena:

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Zer egin? VM baten PUZaren erabilera etengabe teilatutik igarotzen bada, orduan vCPU kopurua handitzea pentsa dezakezu (zoritxarrez, horrek ez du beti laguntzen) edo VM prozesadore indartsuagoak dituen zerbitzari batera eramatea.

CPU erabilera MHz-n

vCenter Erabilera %-ko grafikoetan makina birtual osorako bakarrik ikus dezakezu; ez dago nukleo indibidualentzako grafikorik (Esxtop-en nukleoen % balioak daude). Nukleo bakoitzeko Erabilera ikus dezakezu MHz-n.

Nola aztertu? Gertatzen da aplikazio bat ez dagoela nukleo anitzeko arkitekturarako optimizatuta: nukleo bakarra erabiltzen du %100ean, eta gainerakoak inaktibo daude kargarik gabe. Adibidez, babeskopia ezarpen lehenetsiekin, MS SQL-k prozesua nukleo bakarrean hasten du. Ondorioz, babeskopia moteldu egiten da ez diskoen abiadura motelagatik (hasieran kexatu zen erabiltzailea), prozesadoreak ezin duelako aurre egin baizik. Arazoa parametroak aldatuz konpondu zen: babeskopia paraleloan exekutatzen hasi zen hainbat fitxategitan (hurrenez hurren, hainbat prozesutan).

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU
Nukleoen karga irregularren adibide bat.

Egoera bat ere badago (goiko grafikoan bezala) nukleoak modu irregularrean kargatzen direnean eta horietako batzuk %100eko gailurrak dituztenean. Nukleo bakarra kargatzean bezala, PUZaren erabilerarako alarmak ez du funtzionatuko (VM osoarentzat da), baina errendimendu arazoak egongo dira.

Zer egin? Makina birtualeko softwareak nukleoak modu irregularrean kargatzen baditu (nukleo bat edo nukleoen zati bat bakarrik erabiltzen du), ez du balio haien kopurua handitzea. Kasu honetan, hobe da VM-a prozesadore ahaltsuagoak dituen zerbitzari batera eramatea.

Zerbitzariaren BIOS-en energia-kontsumoaren ezarpenak egiaztatzen ere saiatu zaitezke. Administratzaile askok Errendimendu Handiko modua gaitzen dute BIOSan eta, ondorioz, C-egoerak eta P-egoerak energia aurrezteko teknologiak desgaitzen dituzte. Intel prozesadore modernoek Turbo Boost teknologia erabiltzen dute, zeinak banakako prozesadore-nukleoen maiztasuna areagotzen du beste nukleo batzuen kontura. Baina energia aurrezteko teknologiak aktibatuta daudenean bakarrik funtzionatzen du. Desgaitzen baditugu, prozesadoreak ezin du kargatzen ez diren nukleoen energia-kontsumoa murriztu.

VMware-k zerbitzarietan energia aurrezteko teknologiak ez desgaitzea gomendatzen du, energiaren kudeaketa hipervisorearen esku uzten duten moduak aukeratzea baizik. Kasu honetan, hipervisorearen energia-kontsumoaren ezarpenetan, Errendimendu Handia hautatu behar duzu.

Zure azpiegituran VM indibidualak (edo VM nukleoak) badituzu, PUZaren maiztasun handiagoa behar dutenak, energia-kontsumoa behar bezala doitzeak haien errendimendua nabarmen hobetu dezake.

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

CPU prest

VM core (vCPU) Prest egoeran badago, ez du lanik erabilgarria egiten. Baldintza hau gertatzen da hipervisoreak makina birtualeko vCPU prozesua eslei diezaiokeen nukleo fisiko librerik aurkitzen ez duenean.

Nola aztertu? Normalean, makina birtual baten nukleoak Prest egoeran badaude denboraren % 10 baino gehiago, errendimendu arazoak nabarituko dituzu. Besterik gabe, VM-ak baliabide fisikoak erabilgarri egon arte itxaroten duen denboraren % 10 baino gehiago.

vCenter-en CPU Ready-ri lotutako 2 kontagailu ikus ditzakezu:

  • prest,
  • Prest.

Bi kontagailuen balioak VM osoarentzat zein nukleo indibidualentzat ikus daitezke.
Presttasunak berehala erakusten du balioa ehuneko gisa, baina denbora errealean soilik (azken orduko datuak, neurketa tartea 20 segundo). Hobe da kontagailu hau erabiltzea arazoak "beroan" bilatzeko.

Prest kontagailuen balioak ikuspegi historiko batetik ere ikus daitezke. Baliagarria da ereduak ezartzeko eta arazoaren azterketa sakonago egiteko. Adibidez, makina birtual bat une jakin batean errendimendu-arazoak izaten hasten badira, CPU Ready balioaren tarteak konparatu ditzakezu VM hau exekutatzen ari den zerbitzariko karga osoarenarekin eta karga murrizteko neurriak har ditzakezu (DRS bada). huts egiten du).

Prest, Readiness ez bezala, ez da ehunekotan erakusten, milisegundotan baizik. Hau Summation motako kontagailua da, hau da, neurketa-aldian VM nukleoa Prest egoeran zenbat denbora egon zen erakusten du. Balio hau ehuneko batean bihur dezakezu formula sinple bat erabiliz:

(CPU prest dagoen batuketa-balioa / (diagramaren eguneratze-tarte lehenetsia segundotan * 1000)) * 100 = CPU prest %

Esate baterako, beheko grafikoko VM-rako, makina birtual osoaren Prest balio gorena honako hau izango da:

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Prest ehunekoa kalkulatzerakoan, bi punturi erreparatu behar diezu:

  • VM osoaren Ready balioa Nukleoen artean Ready-ren batura da.
  • Neurketa tartea. Denbora errealerako 20 segundokoa da, eta, adibidez, eguneroko diagrametan 300 segundokoa da.

Arazoak konpontzeko aktiboarekin, puntu erraz hauek erraz galdu daitezke eta denbora baliotsua galdu daiteke existitzen ez diren arazoak konpontzeko.

Kalkula dezagun Ready beheko grafikoko datuetan oinarrituta. (324474/(20*1000))*100 = % 1622 VM osoarentzat. Nukleoei erreparatuz gero ez da hain beldurgarria: 1622/64 = %25 nukleo bakoitzeko. Kasu honetan, harrapaketa nahiko erraza da antzematea: Ready balioa ez da errealista. Baina hainbat nukleo dituen VM osoarentzat % 10-20az ari bagara, orduan nukleo bakoitzarentzat balioa tarte normalaren barruan egon daiteke.

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Zer egin? Prest balio altu batek adierazten du zerbitzariak ez duela prozesadore-baliabide nahikorik makina birtualen funtzionamendu arrunterako. Egoera horretan, prozesadorearen (vCPU:pCPU) gainharpidetza murriztea besterik ez da geratzen. Jakina, hori lor daiteke lehendik dauden VM-en parametroak murriztuz edo VM-en zati bat beste zerbitzari batzuetara migratuz.

Ko-stop

Nola aztertu? Kontagailu hau ere batuketa motakoa da eta ehunekoetan bihurtzen da Prest-en moduan:

(CPU batera gelditzeko batuketaren balioa / (diagramaren eguneratze-tarte lehenetsia segundotan * 1000)) * 100 = CPU batera gelditzeko %

Hemen ere arreta jarri behar duzu VM-ko nukleo kopuruari eta neurketa-tarteari.
Costop egoeran, nukleoak ez du lanik erabilgarria egiten. VM-ren tamaina eta zerbitzarian karga normalaren aukeraketa zuzenarekin, co-stop kontagailuak zerotik gertu egon behar du.

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU
Kasu honetan, karga argi eta garbi anormala da :)

Zer egin? Nukleo kopuru handia duten hainbat VM hipervisor batean exekutatzen ari badira eta CPUan gehiegizko harpidetza badago, co-stop kontagailua handitu egin daiteke, eta horrek VM horien errendimenduarekin arazoak ekarriko ditu.

Gainera, co-stop areagotuko da VM bateko nukleo aktiboak zerbitzari fisikoko nukleo batean hariak erabiltzen badituzte hiper-urraketa gaituta. Egoera hau gerta daiteke, adibidez, VM-ak exekutatzen ari den zerbitzarian fisikoki eskuragarri baino nukleo gehiago baditu edo "preferHT" ezarpena gaituta badago VMrako. Ezarpen honi buruz irakur dezakezu Hemen.

Ko-stop handia dela eta VM errendimenduarekin arazoak saihesteko, hautatu VM tamaina VM honetan exekutatzen den softwarearen fabrikatzailearen gomendioen eta VM exekutatzen den zerbitzari fisikoaren gaitasunen arabera.

Ez gehitu nukleoak erreserban; honek errendimendu arazoak sor ditzake ez bakarrik VM berari, baita zerbitzariko bizilagunei ere.

PUZaren beste neurri erabilgarriak

Korrika egin – zenbat denbora (ms) neurketa-aldian vCPUa RUN egoeran egon zen, hau da, benetan lan erabilgarria egiten ari zen.

idle – zenbat denbora (ms) egon zen neurketa-aldian vCPUa aktibitaterik gabeko egoeran. Idle balio altuak ez dira arazo bat, vCPU-k ez zuen "ezer egitekorik".

Itxaron – zenbat denbora (ms) egon zen neurketa-aldian vCPUa Itxaron egoeran. IDLE kontagailu honetan sartzen denez, Wait balio handiek ere ez dute arazorik adierazten. Baina Wait IDLE baxua bada Wait altua denean, esan nahi du VM-a I/O eragiketak bukatzeko zain zegoela, eta horrek, aldi berean, disko gogorraren edo VM-ren edozein gailu birtualaren errendimenduarekin arazo bat adierazi dezake.

Gehienez mugatua – zenbat denbora (ms) egon zen neurketa-aldian vCPU prest zegoen egoeran ezarritako baliabide-muga dela eta. Errendimendua ulertezin baxua bada, erabilgarria da kontagailu honen balioa eta PUZaren muga egiaztatzea VM ezarpenetan. Baliteke VM-ek ezagutzen ez dituzun mugak izatea. Adibidez, hau gertatzen da VM bat PUZaren muga ezarri zen txantiloi batetik klonatu zenean.

Trukatu itxaron – zenbat denbora itxaron zuen neurketa-aldian vCPUak VMkernel Swap-ekin eragiketa bat egiteko. Kontagailu honen balioak zerotik gorakoak badira, VM-k errendimendu arazoak ditu zalantzarik gabe. SWAP buruz gehiago hitz egingo dugu RAM kontagailuei buruzko artikuluan.

ESXTOP

vCenter-en errendimendu-kontagailuak datu historikoak aztertzeko egokiak badira, orduan arazoaren analisi operatiboa hobe da ESXTOP-en. Hemen, balio guztiak prest dauden moduan aurkezten dira (ez da ezer itzuli beharrik), eta gutxieneko neurketa epea 2 segundokoa da.
CPUrako ESXTOP pantaila "c" teklarekin deitzen da eta itxura hau du:

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Erosotasunerako, makina birtualeko prozesuak soilik utzi ditzakezu Shift-V sakatuta.
Banakako VM nukleoen neurketak ikusteko, sakatu "e" eta sartu interesgarri den VM-aren GID (30919 beheko pantaila-argazkian):

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Utzidazu lehenespenez aurkezten diren zutabeetatik laburbiltzen. Zutabe gehigarriak gehi daitezke "f" sakatuz.

NWLD (Mundu kopurua) – Taldeko prozesu kopurua. Taldea zabaltzeko eta prozesu bakoitzaren neurketak ikusteko (adibidez, nukleo anitzeko VM bateko nukleo bakoitzeko), sakatu "e". Talde batean prozesu bat baino gehiago badago, talderako balio metrikoak prozesu indibidualentzako metrikaren baturaren berdinak dira.

%ERABILITA – zenbat zerbitzariko CPU ziklo erabiltzen dituen prozesu edo prozesu talde batek.

%KORRIKA EGIN – neurketa-aldian zenbat denbora egon zen prozesua RUN egoeran, hau da. lan erabilgarria egin zuen. %USED-en desberdina da, ez dituelako kontuan hartzen hiper-haria, maiztasun-eskala eta sistemako zereginetan (%SYS) emandako denbora.

%SYS – Sistemako zereginetan emandako denbora, adibidez: eten prozesatzea, I/O, sarearen funtzionamendua, etab. Balioa handia izan daiteke VM-ak I/O handia badu.

%OVRLP – VM prozesua exekutatzen ari den nukleo fisikoak zenbat denbora igaro duen beste prozesu batzuetako zereginetan.

Neurri hauek elkarren artean honela erlazionatzen dira:

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

Normalean %USED metrika informazio gehiago da.

Itxaron – neurketa-aldian zenbat denbora egon zen prozesua Itxaron egoeran. IDLE gaitzen du.

% IDLE – neurketa-aldian zenbat denbora egon zen prozesua IDLE egoeran.

%SWPWT – zenbat denbora itxaron zuen neurketa-aldian vCPUak VMkernel Swap-ekin eragiketa bat egiteko.

%VMWAIT – zenbat denbora egon zen neurketa-aldian vCPUa gertaera baten zain egoteko egoeran (normalean I/O). Ez dago antzeko kontagailurik vCenter-en. Balio altuek VM-ko I/O-rekin arazoak adierazten dituzte.

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

VM-ak ez badu VMkernel Swap erabiltzen, errendimendu-arazoak aztertzerakoan %VMWAIT-era begiratzea komeni da, metrika honek ez baitu kontuan hartzen VM-ak ezer egiten ez zuen denbora (%IDLE).

%RDY – neurketa-aldian zenbat denbora egon zen prozesua Prest egoeran.

%CSTP – neurketa-aldian zenbat denbora egon zen prozesua kostup egoeran.

%MLMTD – zenbat denbora egon zen neurketa-aldian vCPUa Prest egoeran ezarritako baliabideen muga dela eta.

%WAIT + %RDY + %CSTP + %RUN = %100 - VM nukleoa lau egoera hauetako batean dago beti.

CPU hipervisorean

vCenter-ek PUZaren errendimendu-kontagailuak ere baditu hipervisorerako, baina ez dira ezer interesgarriak - zerbitzariko VM guztien kontagailuen batura besterik ez dira.
Zerbitzarian PUZaren egoera ikusteko modurik erosoena Laburpena fitxan dago:

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Zerbitzariarentzat, baita makina birtualarentzat ere, Alarma estandar bat dago:

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

Zerbitzariaren PUZaren karga handia denean, bertan exekutatzen diren VM-ak errendimendu arazoak izaten hasten dira.

ESXTOP-en, zerbitzariaren PUZaren karga-datuak pantailaren goialdean aurkezten dira. PUZaren karga estandarraz gain, hipervisorentzat oso informagarria ez dena, beste hiru metrika daude:

CORE UTIL (%) – zerbitzari fisikoaren nukleoa kargatzea. Kontagailu honek neurketa-aldian nukleoak zenbat denbora egin duen lan erakusten du.

PCPU ERABILTZAILEA (%) – hiper-haria gaituta badago, bi hari (PCPU) daude nukleo fisiko bakoitzeko. Neurri honek hari bakoitzak lana amaitzeko zenbat denbora behar izan duen erakusten du.

PCPU ERABILITA (%) – PCPU UTIL-en berdina (%), baina maiztasunaren eskalatzea (bai nukleoaren maiztasuna murriztea energia aurrezteko, edo nukleoaren maiztasuna handitzea Turbo Boost teknologiaren ondorioz) eta hiper-haria hartzen ditu kontuan.

PCPU_USED% = PCPU_UTIL% * core maiztasun eraginkorra / nukleo maiztasun nominala.

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU
Pantaila-argazki honetan, nukleo batzuentzat, Turbo Boost dela eta, ERABILITA balioa % 100 baino handiagoa da, nukleoaren maiztasuna nominala baino handiagoa baita.

Hiper-haria nola hartzen den kontuan hitz batzuk. Prozesuak denboraren % 100ean exekutatzen badira zerbitzariaren nukleo fisikoaren bi harietan, nukleoak maiztasun nominalean funtzionatzen duen bitartean, orduan:

  • Nukleorako CORE UTIL % 100 izango da,
  • PCPU UTIL bi harietarako %100ekoa izango da,
  • Bi harietarako ERABILITAKO PCPU %50ekoa izango da.

Neurketa-aldian bi hariek denboraren % 100ean funtzionatu ez badute, hariak paraleloan lan egiten zuten aldi horietan, nukleoetarako ERABILITAKO PCPU erdia zatitzen da.

ESXTOP-ek zerbitzariaren PUZaren energia-kontsumoaren parametroak dituen pantaila bat ere badu. Hemen zerbitzariak energia aurrezteko teknologiak erabiltzen dituen ikus dezakezu: C-egoerak eta P-egoerak. "p" teklarekin deitzen da:

Makina birtualen errendimenduaren analisia VMware vSphere-n. 1. zatia: CPU

CPUaren errendimendu-arazo arruntak

Azkenik, VM CPUren errendimenduaren arazoen ohiko arrazoiak aztertuko ditut eta horiek konpontzeko aholku laburrak emango ditut:

Nukleoaren erlojuaren abiadura ez da nahikoa. Ezinezkoa bada zure VM nukleo indartsuagoetara berritzea, saia zaitezke potentzia ezarpenak aldatzen Turbo Boost eraginkorrago funtziona dezan.

VM tamaina okerra (nukleo gehiegi/gutxi). Nukleo gutxi instalatzen badituzu, CPU karga handia egongo da VM-n. Asko badago, harrapatu ko-stop altua.

Zerbitzarian CPUren gainharpidetza handia. VM-ak Prest handia badu, murriztu CPUaren gainharpidetza.

NUMA topologia okerra VM handietan. VM-k ikusten duen NUMA topologiak (vNUMA) zerbitzariaren NUMA topologiarekin (pNUMA) bat etorri behar du. Diagnostikoak eta arazo honen irtenbide posibleak idatzita daude, adibidez, liburuan "VMware vSphere 6.5 ostalariaren baliabideak murgiltze sakona". Ez baduzu gehiago sakondu nahi eta ez baduzu sistema eragilearen lizentzia-murrizketarik VM-n instalatuta, egin socket birtual asko VM-n, nukleo bat aldi berean. Ez duzu asko galduko :)

Hori da niretzat CPUari buruz. Egin galderak. Hurrengo zatian RAMari buruz hitz egingo dut.

Esteka interesgarriakhttp://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

Iturria: www.habr.com

Gehitu iruzkin berria