Anslut till Senaste Tekniska Nyheter, Bloggar, Recensioner

VMWorld 2008 live: djupgående Disk I/O-övervakning

I en helt briljant och (naturligtvis!) rent teknisk session kallad “Disk Workload Characterization on ESX”, förklarade Richard McDougall hur du kan lösa disk I/O-problem genom att fånga in djupgående övervakningsdata och analysera dem.

Skriv bara kommentaren nedan i ESX-konsolen (COS):

/usr/lib/vmware/bin/vscsiStats -h

och du kan få en mängd disk I/O-statistik. Denna vscsistat-mjukvara verkar använda en lättviktssond som är en del av de virtualiserade HBA-drivrutinerna (Buslogic of LSI Logic). Detta innebär naturligtvis att du mäter på nivån för en virtuell dator, du kan inte få en fullständig överblick över användningen av dina lagringsmatriser på detta sätt. Syftet är att hjälpa dig förstå vad applikationen som körs i en viss virtuell dator gör. Det fungerar också om du använder en iSCSI (eller FC) initiator på ESX hypervisornivå eftersom alla blockkommandon fortfarande passerar genom den virtuella HBA. Om du använder en initiator på din gäst OS-nivå får du dock ingen statistik.

Följande data kan samlas in:

  • I/O-blockstorlek
  • latens
  • Sök avstånd/rumslig lokalitet
  • Utestående I/O (köer)
  • I/O ankomsttid/ Latens

Med andra ord allt du behöver veta för att få en mycket bra uppfattning om din applikations diskåtkomstprofil.

Du kan få histogram över latens, I/O-blockstorlekar och så vidare. Om du inte utför en fullständig spårning, försäkrade Richard oss ​​att detta är en mycket lätt process som kan köras på produktionssystem med mycket liten prestandaförlust.

Att veta till exempel vilken blockstorlek din applikation använder oftast kan hjälpa mycket, eftersom blockstorleken på gästen bör överensstämma med blockstorleken på backend (din lagringsarray).

Ett annat tips jag plockade upp: Transaktioner (commit) på databaser består av uppdateringsskrivningar på loggarna (latency!), medan de flesta databaser sedan utför asynkronskrivningar till själva databasen. Så du måste placera dina loggar på en array med låg latens, medan din diskarray där din databasdata finns bara behöver ha tillräckligt med bandbredd och skrivcacheminne.