
Idag ska vi gÄ igenom metrik för lagringssystemet i vSphere. Lagringsproblem Àr den vanligaste orsaken till lÄngsam prestanda hos virtuella maskiner. Medan felsökning av CPU och RAM ofta avslutas pÄ hypervisor-nivÄ, kan det vid diskproblem vara nödvÀndigt att titta pÄ datanÀtverket och lagringssystemet.
Jag kommer att diskutera detta Àmne med hjÀlp av blockÄtkomst till lagringssystemet, Àven om mÀtvÀrdena Àr ungefÀr desamma vid filÄtkomst.
Lite teori
NÀr man pratar om prestanda hos lagringssystem för virtuella maskiner, fokuserar man vanligtvis pÄ tre sammanlÀnkade parametrar:
- antalet in- och utdataoperationer (Input/Output Operations Per Second, IOPS);
- bandbredd (Throughput);
- fördröjningen av in- och utdataoperationer (Latency).
Antalet IOPS Àr vanligtvis viktigt för belastningar av slumpmÀssig karaktÀr: Ätkomst till block pÄ disken som ligger pÄ olika platser. Exempel pÄ sÄdana belastningar kan vara databaser, affÀrsapplikationer (ERP, CRM) etc.
Bandbredd Àr viktiga för belastningar av sekventiell karaktÀr: Ätkomst till block som ligger efter varandra. Till exempel kan sÄdana belastningar genereras av filservrar (men inte alltid) och system för videoövervakning.
Bandbredden Àr relaterad till antalet in- och utdataoperationer pÄ följande sÀtt:
Throughput = IOPS * Blockstorlek, dÀr Blockstorlek Àr storleken pÄ blocket.
Blockstorleken Ă€r en ganska viktig egenskap. Moderna versioner av ESXi tillĂ„ter blockstorlekar upp till 32 767 KB. Om blocket Ă€r Ă€nnu större delas det upp i flera. Inte alla lagringssystem kan effektivt hantera sĂ„dana stora block, dĂ€rför finns det en parameter i avancerade instĂ€llningar i ESXi som heter DiskMaxIOSize. Genom denna kan man minska den maximala blockstorlek som hypervisorn tillĂ„ter (mer information ). Jag rekommenderar att man rĂ„dfrĂ„gar tillverkaren av lagringssystemet innan man Ă€ndrar denna parameter, eller Ă„tminstone testa Ă€ndringarna pĂ„ en laboratoriestand.Â
En stor blockstorlek kan negativt pĂ„verka prestandan hos lagringssystemet. Ăven om antalet IOPS och throughput Ă€r relativt lĂ„gt, kan det vid stor blockstorlek uppstĂ„ höga fördröjningar. SĂ„ var uppmĂ€rksam pĂ„ denna parameter.
Fördröjning â den mest intressanta parametern för prestanda. Fördröjningen för in- och utdataoperationer för den virtuella maskinen bestĂ„r av:
- fördröjningar inuti hypervisorn (KAVG, genomsnittlig kÀrna milliSec/LÀs);
- fördröjningar orsakade av datanÀt och LUN (DAVG, genomsnittlig drivrutin milliSec/kommando).
Den totala fördröjningen som syns i gÀst-OS (GAVG, genomsnittlig gÀst milliSec/kommando) Àr summan av KAVG och DAVG.
GAVG och DAVG mĂ€ts, medan KAVG berĂ€knas: GAVGâDAVG.

LÄt oss titta nÀrmare pÄ KAVG. Vid normal drift bör KAVG strÀva mot noll eller Ätminstone vara mycket mindre Àn DAVG. Det enda jag kÀnner till dÀr KAVG förvÀntas vara hög Àr diskens IOPS-begrÀnsning för VMen. I sÄdana fall kommer KAVG att öka vid försök att överskrida grÀnsen.
Den mest signifikanta komponenten av KAVG Ă€r QAVG â tiden i kö för behandling inuti hypervisorn. Ăvriga komponenter av KAVG Ă€r försumbar smĂ„.
Kön i diskdrivrutinen och köerna till LUNarna har en fast storlek. För högbelastade miljöer kan det vara anvÀndbart att öka denna storlek. beskriver hur man ökar köerna i adapterdrivrutinen (samtidigt ökar kön till LUNarna). Denna instÀllning fungerar nÀr bara en VM arbetar med LUNen, vilket Àr sÀllan. Om flera VMar Àr anslutna till LUNen, mÄste Àven parameter Disk.SchedNumReqOutstanding (instruktion ). Genom att öka kön minskar du QAVG och KAVG i enlighet med detta.
Men, som alltid, bekanta dig först med dokumentationen frÄn HBA-leverantören och testa Àndringarna pÄ ett laboratorium.
Kön till LUNen kan pÄverkas av aktiveringen av SIOC-mekanismen (Storage I/O Control). Den sÀkerstÀller jÀmn tillgÄng till LUNen frÄn alla servrar i klustret genom att dynamiskt Àndra kön till LUNen pÄ servrarna. Det vill sÀga, om en VM pÄ en av vÀrdarna krÀver oproportionerligt mycket prestanda (noisy neighbor VM), minskar SIOC lÀngden pÄ kön till LUNen pÄ den vÀrden (DQLEN). Mer information .
Vi har förstÄtt KAVG, nu lite om DAVG. HÀr Àr allt enkelt: DAVG Àr den fördröjning som den externa miljön (datanÀt och LUN) ger. I varje modern och Àven Àldre LUN finns det egna prestandaindikatorer. För att analysera problem med DAVG Àr det meningsfullt att titta pÄ dem. Om allt ser bra ut frÄn ESXi och LUN, kontrollera datanÀtverket.
För att undvika prestandaproblem, vĂ€lj rĂ€tt Path Selection Policy (PSP) för din lagringslösning. NĂ€stan alla moderna lagringssystem stödjer PSP Round-Robin (med ALUA, Asymmetric Logical Unit Access, eller utan). Denna policy möjliggör utnyttjande av alla tillgĂ€ngliga vĂ€gar till lagringssystemet. I fallet med ALUA anvĂ€nds endast vĂ€gar till den kontroller som Ă€ger LUN:en. Det finns inte alltid standardregler för alla lagringssystem pĂ„ ESXi, som stĂ€ller in policyn Round-Robin. Om det inte finns nĂ„gra regler för ditt lagringssystem, anvĂ€nd leverantörens plugin för att skapa motsvarande regel pĂ„ alla vĂ€rdar i klustret, eller skapa regeln sjĂ€lv. Mer information .Â
Ăven vissa lagringssystemstillverkare rekommenderar att Ă€ndra antalet IOPS per vĂ€g frĂ„n standardvĂ€rdet 1000 till 1. I vĂ„r praktik har detta gjort det möjligt att "pressa ut" mer prestanda frĂ„n lagringssystemet och avsevĂ€rt minska den tid som krĂ€vs för failover vid hĂ„rdvarufel eller uppgraderingar av kontrollerna. Kontrollera med leverantörens rekommendationer, och om det inte finns nĂ„gra kontraindikationer, prova att Ă€ndra detta parameter. Mer information .
Huvudsakliga prestandaindikatorer för diskunderlaget i den virtuella maskinen
Prestandaindikatorerna för diskunderlaget i vCenter Àr samlade i avsnitten Datastore, Disk, Virtual Disk:

I avsnittet Datastore hÀr finns metrik för diskstorage vSphere (datastores) dÀr virtuella maskinens diskar ligger. HÀr hittar du standardindikatorer för:
- IOPS (genomsnittligt antal lĂ€s-/skrivförfrĂ„gningar per sekund),Â
- bandbredd (lĂ€s-/skrivhastighet),Â
- fördröjningar (lÀs-/skriv-/högsta fördröjning).
FrÄn namnen pÄ indikatorerna framgÄr i princip allt. Jag vill Äterigen pÄpeka att hÀr statistiken inte gÀller en specifik virtuell maskin (eller disk i den virtuella maskinen), utan Àr generell för hela datastoren. Enligt min mening Àr det lÀttare att se denna statistik i ESXTOP, Àven med tanke pÄ att den minimi mÀtperioden dÀr Àr 2 sekunder.
I avsnittet Disk hÀr finns metrik för blocklagringsenheterna som anvÀnds av den virtuella maskinen. HÀr finns indikatorer för IOPS av typen summation (antal in- och utdataoperationer under mÀtperioden) och flera indikatorer relaterade till blockÄtkomst (Aborterade kommandon, BussÄterstÀllningar). Denna information, enligt min mening, Àr ocksÄ lÀttare att se i ESXTOP.
Avsnitt Virtuell disk â den mest anvĂ€ndbara nĂ€r det gĂ€ller att söka efter prestandaproblem i diskunderlaget för VM. HĂ€r kan du se prestanda per virtuell disk. Denna information Ă€r avgörande för att förstĂ„ om det finns ett problem med en specifik virtuell maskin. Förutom de standardrĂ€knare för in-/utdataoperationer, lĂ€s-/skrivvolymer och fördröjningar, finns det anvĂ€ndbara rĂ€knare i denna avsnitt som visar blockstorlek: Read/Write request size.
I bilden nedan visas diskens VM-prestandadiagram, dĂ€r du kan se antalet IOPS, fördröjningar och blockstorlek.Â

Du kan ocksÄ se prestandametrik för hela datastoren om SIOC Àr aktiverat. HÀr presenteras grundlÀggande information om genomsnittlig latency och IOPS. Som standard kan denna information bara ses i realtid.

ESXTOP
I ESXTOP finns flera skÀrmar som visar information om vÀrdens diskunderlag, specifika virtuella maskiner och deras diskar.
Vi börjar med information om virtuella maskiner. SkÀrmen 'Disk VM' aktiveras med tangenten 'v':

NVDISK â Ă€r antalet diskar för VM. För att se information om varje disk, tryck pĂ„ 'e' och ange GID för den intressanta VM:n.
VÀrdena för de övriga parametrarna pÄ denna skÀrm Àr tydliga frÄn deras namn.
En annan anvÀndbar skÀrm nÀr man söker efter problem Àr Disk adapter. Den aktiveras med tangenten 'd' (i bilden nedan har fÀlten A, B, C, D, E, G valts):

NPTH â antalet vĂ€gar till lun som syns frĂ„n denna adapter. För att fĂ„ information om varje vĂ€g pĂ„ adaptern, tryck pĂ„ 'e' och ange namnet pĂ„ adaptern:

AQLEN â den maximala storleken pĂ„ kön pĂ„ adaptern.
Dessutom visas rÀknare för fördröjningar pÄ denna skÀrm, om vilka jag talade tidigare: KAVG/cmd, GAVG/cmd, DAVG/cmd, QAVG/cmd.
PĂ„ skĂ€rmen Disk device, som aktiveras med tangenten 'u', visas information om enskilda blockenheter â lun (i bilden nedan har fĂ€lten A, B, F, G, I valts). HĂ€r kan du se köstatus för lun.

DQLEN â storleken pĂ„ kön för blockenheten.
ACTV â antalet in-/utdataoperationer i ESXi-kĂ€rnan.
QUED â antalet in-/utdataoperationer i kön.
%USD â AACTIVE / DQLEN Ă 100%.
LOAD â (ACTV + QUED) / DQLEN.
Om %USD Àr högt, bör du övervÀga att öka kön. Ju fler kommandon i kön, desto högre QAVG och, i sin tur, KAVG.
PÄ Disk-enhets-skÀrmen kan du ocksÄ se om VAAI (vStorage API for Array Integration) fungerar pÄ lagringssystemet. För att göra detta mÄste du vÀlja fÀlten A och O.
VAAI-mekanismen möjliggör att en del av arbetet flyttas frÄn hypervisorn direkt till lagringssystemet, till exempel nollstÀllning, blockkopiering eller blockering.
![]()
Som visas pÄ bilden ovan fungerar VAAI pÄ detta lagringssystem: primitiverna Zero och ATS anvÀnds aktivt.
Tips för att optimera diskundersystemets prestationer pÄ ESXi
- Var uppmÀrksam pÄ blockstorleken.
- StÀll in den optimala köstorleken pÄ HBA.
- Glöm inte att aktivera SIOC pÄ datalagringsutrymmen.
- VÀlj PSP i enlighet med tillverkarens rekommendationer för lagringssystemet.
- Se till att VAAI fungerar.
Nyttiga artiklar om Àmnet:
KĂ€lla: habr.com
