Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

Partea 1. Despre CPU
Partea 2. Despre memorie

Astăzi vom analiza valorile subsistemului de disc în vSphere. O problemă de stocare este cel mai frecvent motiv pentru o mașină virtuală lentă. Dacă, în cazul CPU și RAM, depanarea se termină la nivel de hypervisor, atunci dacă există probleme cu discul, este posibil să trebuiască să vă ocupați de rețeaua de date și sistemul de stocare.

Voi discuta subiectul folosind exemplul de blocare a accesului la sistemele de stocare, deși pentru accesul la fișiere contoarele sunt aproximativ aceleași.

Un pic de teorie

Când vorbesc despre performanța subsistemului de disc al mașinilor virtuale, oamenii acordă de obicei atenție la trei parametri interrelaționați:

  • numărul de operații de intrare/ieșire (Operații de intrare/ieșire pe secundă, IOPS);
  • debit;
  • întârziere a operaţiilor de intrare/ieşire (Latency).

Numărul de IOPS de obicei important pentru sarcini de lucru aleatorii: acces la blocuri de disc situate în locuri diferite. Un exemplu de astfel de încărcare ar putea fi bazele de date, aplicațiile de afaceri (ERP, CRM) etc.

capacitate important pentru incarcari secventiale: acces la blocuri situate unul dupa altul. De exemplu, serverele de fișiere (dar nu întotdeauna) și sistemele de supraveghere video pot genera o astfel de încărcare.

Debitul este legat de numărul de operațiuni I/O, după cum urmează:

Debit = IOPS * Dimensiunea blocului, unde dimensiunea bloc este dimensiunea blocului.

Dimensiunea blocului este o caracteristică destul de importantă. Versiunile moderne de ESXi permit blocuri de până la 32 KB în dimensiune. Dacă blocul este și mai mare, acesta este împărțit în mai multe. Nu toate sistemele de stocare pot funcționa eficient cu blocuri atât de mari, așa că există un parametru DiskMaxIOSize în Setările avansate ESXi. Folosind-o, puteți reduce dimensiunea maximă a blocului omisă de hypervisor (mai multe detalii aici). Înainte de a modifica acest parametru, vă recomand să vă consultați cu producătorul sistemului de stocare sau măcar să testați modificările pe o bancă de laborator. 

O dimensiune mare a blocului poate avea un efect negativ asupra performanței stocării. Chiar dacă numărul de IOPS și debitul sunt relativ mici, latențe mari pot fi observate cu o dimensiune mare a blocului. Prin urmare, acordați atenție acestui parametru.

Latență – cel mai interesant parametru de performanță. Latența I/O pentru o mașină virtuală constă în:

  • întârzieri în interiorul hypervisorului (KAVG, Average Kernel MilliSec/Read);
  • întârziere furnizată de rețeaua de date și sistemul de stocare (DAVG, Average Driver MilliSec/Command).

Latența totală care este vizibilă în sistemul de operare invitat (GAVG, Average Guest MilliSec/Command) este suma KAVG și DAVG.

GAVG și DAVG sunt măsurate și KAVG este calculat: GAVG–DAVG.

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare
Sursă

Să aruncăm o privire mai atentă la KAVG. În timpul funcționării normale, KAVG ar trebui să tinde spre zero sau cel puțin să fie mult mai mic decât DAVG. Singurul caz pe care îl știu în care KAVG este de așteptat ridicat este limita IOPS pe discul VM. În acest caz, atunci când încercați să depășiți limita, KAVG va crește.

Cea mai semnificativă componentă a KAVG este QAVG - timpul de coadă de procesare din interiorul hypervisorului. Componentele rămase ale KAVG sunt neglijabile.

Coada din driverul adaptorului de disc și coada către luni are o dimensiune fixă. Pentru medii foarte încărcate, poate fi util să măriți această dimensiune. Aici descrie modul de creștere a cozilor în driverul adaptorului (în același timp, coada de așteptare la luni va crește). Această setare funcționează atunci când un singur VM lucrează cu luna, ceea ce este rar. Dacă există mai multe VM-uri pe lună, trebuie să măriți și parametrul Disk.SchedNumReqOutstanding (instrucțiuni  aici). Prin creșterea cozii, reduceți QAVG și, respectiv, KAVG.

Dar, din nou, mai întâi citiți documentația de la furnizorul HBA și testați modificările pe o bancă de laborator.

Mărimea cozii către lună poate fi afectată de includerea mecanismului SIOC (Storage I/O Control). Oferă acces uniform la lună de pe toate serverele din cluster prin schimbarea dinamică a cozii la luna de pe servere. Adică, dacă una dintre gazde rulează un VM care necesită o cantitate disproporționată de performanță (VM vecin zgomotos), SIOC reduce lungimea cozii la luna pe această gazdă (DQLEN). Mai multe detalii aici.

Am rezolvat KAVG, acum puțin despre DAVG. Totul este simplu aici: DAVG este întârzierea introdusă de mediul extern (rețea de date și sistem de stocare). Fiecare sistem de depozitare modern și nu atât de modern are propriile contoare de performanță. Pentru a analiza problemele cu DAVG, este logic să le privim. Dacă totul este în regulă pe partea ESXi și pe partea de stocare, verificați rețeaua de date.

Pentru a evita problemele de performanță, alegeți politica de selecție a căii (PSP) corectă pentru sistemul dvs. de stocare. Aproape toate sistemele moderne de stocare acceptă PSP Round-Robin (cu sau fără ALUA, Asymmetric Logical Unit Access). Această politică vă permite să utilizați toate căile disponibile către sistemul de stocare. În cazul ALUA, sunt folosite doar căile către controlerul care deține luna. Nu toate sistemele de stocare de pe ESXi au reguli implicite care stabilesc politica Round-Robin. Dacă nu există nicio regulă pentru sistemul dvs. de stocare, utilizați un plugin de la producătorul sistemului de stocare, care va crea o regulă corespunzătoare pentru toate gazdele din cluster sau creați singur o regulă. Detalii aici

De asemenea, unii producători de sisteme de stocare recomandă modificarea numărului de IOPS pe cale de la valoarea standard de 1000 la 1. În practica noastră, acest lucru a făcut posibilă „strângerea” mai multă performanță din sistemul de stocare și reducerea semnificativă a timpului necesar pentru failover. în cazul defecțiunii sau actualizării unui controler. Verificați recomandările vânzătorului și, dacă nu există contraindicații, încercați să schimbați acest parametru. Detalii aici.

Contoare de performanță de bază a subsistemului de disc al mașinii virtuale

Contoarele de performanță ale subsistemului de disc din vCenter sunt colectate în secțiunile Datastore, Disk, Virtual Disk:

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

În secțiunea Magazin de date există valori pentru stocările de disc vSphere (magazine de date) pe care se află discurile VM. Aici veți găsi contoare standard pentru:

  • IOPS (Solicitări medii de citire/scriere pe secundă), 
  • debit (rata de citire/scriere), 
  • întârzieri (Citire/Scriere/Cea mai mare latență).

În principiu, totul este clar din numele contoarelor. Permiteți-mi să vă atrag încă o dată atenția asupra faptului că statisticile de aici nu sunt pentru un anume VM (sau disc VM), ci statistici generale pentru întregul depozit de date. După părerea mea, este mai convenabil să te uiți la aceste statistici în ESXTOP, cel puțin pe baza faptului că perioada minimă de măsurare este de 2 secunde.

În secțiunea Disc există valori pe dispozitivele bloc care sunt utilizate de VM. Există contoare pentru IOPS de tip însumare (numărul de operații de intrare/ieșire în perioada de măsurare) și mai multe contoare legate de blocarea accesului (Comenzi anulate, resetări magistrală). În opinia mea, este, de asemenea, mai convenabil să vizualizați aceste informații în ESXTOP.

Secțiune Discul virtual – cel mai util din punctul de vedere al găsirii problemelor de performanță ale subsistemului disc VM. Aici puteți vedea performanța pentru fiecare disc virtual. Aceste informații sunt necesare pentru a înțelege dacă o anumită mașină virtuală are o problemă. Pe lângă contoarele standard pentru numărul de operațiuni I/O, volumul de citire/scriere și întârzieri, această secțiune conține contoare utile care arată dimensiunea blocului: dimensiunea cererii de citire/scriere.

În imaginea de mai jos este un grafic al performanței discului VM, unde puteți vedea numărul de IOPS, latența și dimensiunea blocului. 

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

De asemenea, puteți vizualiza valorile de performanță pentru întregul depozit de date dacă SIOC este activat. Iată informații de bază despre latența medie și IOPS. În mod implicit, aceste informații pot fi vizualizate numai în timp real.

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

ESXTOP

ESXTOP are mai multe ecrane care oferă informații despre subsistemul discului gazdă în ansamblu, mașinile virtuale individuale și discurile acestora.

Să începem cu informații despre mașinile virtuale. Ecranul „Disk VM” este apelat cu tasta „v”:

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

NVDISK este numărul de discuri VM. Pentru a vizualiza informațiile pentru fiecare disc, apăsați „e” și introduceți GID-ul VM-ului de interes.

Semnificația parametrilor rămași de pe acest ecran este clară din numele lor.

Un alt ecran util la depanare este Adaptorul de disc. Apelat de tasta „d” (câmpurile A,B,C,D,E,G sunt selectate în imaginea de mai jos):

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

NPTH – numărul de căi către luni care sunt vizibile de pe acest adaptor. Pentru a obține informații pentru fiecare cale de pe adaptor, apăsați „e” și introduceți numele adaptorului:

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

AQLEN – dimensiunea maximă a cozii pe adaptor.

Tot pe acest ecran sunt și contoarele de întârziere despre care am vorbit mai sus: KAVG/cmd, GAVG/cmd, DAVG/cmd, QAVG/cmd.

Ecranul Dispozitiv Disk, care este apelat prin apăsarea tastei „u”, oferă informații despre dispozitivele bloc individuale - luni (câmpurile A, B, F, G, I sunt selectate în imaginea de mai jos). Aici puteți vedea starea cozii pentru luni.

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

DQLEN – dimensiunea cozii pentru un dispozitiv bloc.
ACTV – numărul de comenzi I/O din nucleul ESXi.
QUED – numărul de comenzi I/O din coadă.
%USD – ACTV / DQLEN × 100%.
LOAD – (ACTV + QUED) / DQLEN.

Dacă %USD este mare, ar trebui să luați în considerare creșterea cozii. Cu cât sunt mai multe comenzi în coadă, cu atât mai mare este QAVG și, în consecință, KAVG.

De asemenea, puteți vedea pe ecranul dispozitivului Disk dacă VAAI (vStorage API for Array Integration) rulează pe sistemul de stocare. Pentru a face acest lucru, selectați câmpurile A și O.

Mecanismul VAAI vă permite să transferați o parte a lucrării de la hypervisor direct în sistemul de stocare, de exemplu, repunerea la zero, copierea blocurilor sau blocarea.

Analiza performanței VM în VMware vSphere. Partea 3: Depozitare

După cum puteți vedea în imaginea de mai sus, VAAI funcționează pe acest sistem de stocare: primitivele zero și ATS sunt utilizate în mod activ.

Sfaturi pentru optimizarea lucrului cu subsistemul de disc pe ESXi

  • Atenție la dimensiunea blocului.
  • Setați dimensiunea optimă a cozii pe HBA.
  • Nu uitați să activați SIOC în depozitele de date.
  • Alegeți un PSP în conformitate cu recomandările producătorului sistemului de stocare.
  • Asigurați-vă că VAAI funcționează.

Articole utile pe tema:http://www.yellow-bricks.com/2011/06/23/disk-schednumreqoutstanding-the-story/
http://www.yellow-bricks.com/2009/09/29/whats-that-alua-exactly/
http://www.yellow-bricks.com/2019/03/05/dqlen-changes-what-is-going-on/
https://www.codyhosterman.com/2017/02/understanding-vmware-esxi-queuing-and-the-flasharray/
https://www.codyhosterman.com/2018/03/what-is-the-latency-stat-qavg/
https://kb.vmware.com/s/article/1267
https://kb.vmware.com/s/article/1268
https://kb.vmware.com/s/article/1027901
https://kb.vmware.com/s/article/2069356
https://kb.vmware.com/s/article/2053628
https://kb.vmware.com/s/article/1003469
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/vsphere-esxi-vcenter-server-67-performance-best-practices.pdf

Sursa: www.habr.com

Adauga un comentariu