[TR] VMware ESXi esxtop ile Storage Latency Analizi (DAVG, KAVG ve GAVG Değerlerini Anlamak)

[TR] VMware ESXi esxtop ile Storage Latency Analizi (DAVG, KAVG ve GAVG Değerlerini Anlamak)

VMware performans sorun giderme sürecinin en kritik adımlarından biri Storage Latency değerlerinin kontrol edilmesidir. Özellikle aynı datastore üzerinde çalışan birden fazla sanal makinede yavaşlama, uygulama cevap sürelerinde artış veya disk işlemlerinde bekleme yaşanıyorsa sorunun kaynağını belirlemek her zaman kolay değildir.

Problemin;

  • Sanal makineden,
  • ESXi host üzerindeki VMkernel katmanından,
  • HBA veya driver’dan,
  • SAN fabric altyapısından,
  • Storage Controller’dan,
  • RAID grubundan,
  • Ya da fiziksel disklerden

kaynaklanması mümkündür.

VMware ESXi üzerinde bulunan güçlü esxtop aracı, Storage I/O yolunun farklı katmanlarını gerçek zamanlı olarak incelemeye yardımcı olur. Özellikle Disk Adapter View, HBA ve VMkernel seviyesindeki performans değerlerini analiz etmek için kullanılabilir.

VMware Storage I/O yolu nasıl çalışır?

Bir sanal makinenin gerçekleştirdiği disk işlemi doğrudan storage sistemine ulaşmaz. I/O isteği aşağıdaki katmanlardan geçer:

Application
   ↓
Guest Operating System
   ↓
Virtual SCSI Controller
   ↓
VMDK
   ↓
VMkernel Storage Stack
   ↓
HBA / Storage Adapter
   ↓
SAN Fabric veya iSCSI Network
   ↓
Storage Controller
   ↓
RAID Group / Disk

Bu zincirin herhangi bir noktasında yaşanan gecikme, sanal makinenin disk performansını doğrudan etkileyebilir.

esxtop, gecikmenin hangi katmanda oluştuğunu belirlemek için başlıca üç önemli değer sunar:

  • DAVG – Device Average Latency
  • KAVG – Kernel Average Latency
  • GAVG – Guest Average Latency

Temel ilişki aşağıdaki gibidir:

GAVG = DAVG + KAVG

esxtop Disk Adapter View nasıl açılır?

Öncelikle ESXi host üzerinde SSH servisi etkinleştirilir ve hosta bağlanılır.

ssh root@ESXI_HOST_IP

Ardından esxtop çalıştırılır:

esxtop

Disk Adapter View ekranına geçmek için:

d

tuşuna basılır.

Ekrandaki alanları değiştirmek veya ek metrikler görüntülemek için f, yenileme süresini değiştirmek için s tuşu kullanılabilir.

Storage analizinde diğer önemli görünümler şunlardır:

TuşGörünümKullanım amacı
dDisk Adapter ViewHBA ve storage adapter seviyesini incelemek
uDisk Device ViewLUN veya device seviyesini incelemek
vDisk VM ViewSanal makine ve VMDK seviyesini incelemek

Disk Adapter View, sorunun hangi VM’de olduğunu doğrudan göstermez. Adapter seviyesinde sorun görüldüğünde u ve v görünümleriyle analizin detaylandırılması gerekir.

DAVG: Device Average Latency

DAVG, storage cihazının bir I/O isteğine cevap vermesi için geçen ortalama süredir.

Başka bir ifadeyle ESXi host tarafından storage sistemine gönderilen komutun tamamlanarak geri dönmesi sırasında oluşan gecikmeyi gösterir.

DAVG değerinin yükselmesi genellikle ESXi host dışındaki bileşenlerle ilişkilidir:

  • Storage Array üzerindeki yoğunluk
  • Yavaş veya arızalı diskler
  • RAID rebuild işlemleri
  • Storage Controller darboğazı
  • Disk Pool veya RAID Group doygunluğu
  • SAN switch üzerinde congestion
  • FC port hataları
  • iSCSI network paket kayıpları
  • Storage cache yetersizliği
  • HBA ile storage arasındaki path sorunları

Örneğin:

DAVG/cmd = 35 ms
KAVG/cmd = 5 ms
GAVG/cmd = 40 ms

Bu durumda toplam gecikmenin büyük bölümü DAVG değerinden kaynaklanmaktadır. Kontrollerin öncelikli olarak Storage Array, SAN fabric, controller, disk grubu ve fiziksel diskler üzerinde yapılması gerekir.

KAVG: Kernel Average Latency

KAVG, I/O isteğinin ESXi VMkernel Storage Stack içerisinde geçirdiği süreyi gösterir.

Normal şartlarda KAVG değerinin oldukça düşük olması beklenir. KAVG yükseliyorsa problem çoğunlukla ESXi host tarafında aranmalıdır.

Yüksek KAVG değerinin olası nedenleri şunlardır:

  • Queue Depth sınırına ulaşılması
  • HBA queue saturation
  • Driver problemi
  • HBA firmware uyumsuzluğu
  • Multipathing yapılandırma problemi
  • Path failover işlemleri
  • PSA, NMP veya Native Multipathing sorunları
  • Yoğun I/O nedeniyle VMkernel queue oluşması
  • Storage adapter üzerindeki command queue doygunluğu
  • Hatalı veya uyumsuz SATP/PSP ayarları

Örneğin:

DAVG/cmd = 3 ms
KAVG/cmd = 35 ms
GAVG/cmd = 38 ms

Storage cihazı isteğe 3 ms içerisinde cevap vermektedir. Buna rağmen VMkernel katmanında 35 ms bekleme oluşmaktadır.

Bu senaryoda aşağıdaki bileşenler incelenmelidir:

Queue Depth
HBA Driver
HBA Firmware
Multipathing
Path Status
ESXi Compatibility
Storage Adapter Queue

GAVG: Guest Average Latency

GAVG, sanal makinenin ESXi storage katmanı üzerinden yaşadığı toplam ortalama gecikmeyi ifade eder.

Formülü:

GAVG = DAVG + KAVG

Örneğin:

DAVG = 18.5 ms
KAVG = 2.1 ms
GAVG = 20.6 ms

Bu değerin yorumu şöyledir:

  • Storage cihazı ve storage yolu üzerinde 18.5 ms gecikme bulunmaktadır.
  • VMkernel içerisinde 2.1 ms ek gecikme oluşmaktadır.
  • ESXi tarafından sanal makineye yansıtılan toplam storage latency yaklaşık 20.6 ms’dir.

Burada gecikmenin büyük kısmı DAVG tarafında oluştuğu için sorun ağırlıklı olarak storage altyapısında aranmalıdır.

GAVG değeri, uygulamanın uçtan uca bütün cevap süresi değildir. Guest OS içerisindeki filesystem, application queue veya database beklemeleri ayrıca incelenmelidir.

Disk Adapter View örneğinin yorumlanması

Örnek bir esxtop çıktısı aşağıdaki gibi olabilir:

ADAPTR   DQLEN   ACTV   QUED   CMDS/s   DAVG/cmd   KAVG/cmd   GAVG/cmd
vmhba0     128     45      0      850        18.5        2.1       20.6

Bu alanların anlamları:

AlanAçıklama
ADAPTRStorage adapter veya HBA adı
DQLENAdapter veya device için kullanılabilen queue depth
ACTVAktif olarak işlenen I/O komutları
QUEDKuyrukta bekleyen I/O komutları
CMDS/sSaniyede gerçekleştirilen I/O komutu
DAVG/cmdStorage device kaynaklı ortalama gecikme
KAVG/cmdVMkernel kaynaklı ortalama gecikme
GAVG/cmdToplam ortalama gecikme

Örnekte QUED değerinin sıfır olması, I/O isteklerinin adapter kuyruğunda beklemediğini gösterir. Ancak DAVG değerinin 18.5 ms olması nedeniyle storage tarafındaki performansın izlenmesi gerekir.

Queue Depth ve QUED analizi

Queue Depth, aynı anda storage sistemine gönderilebilecek maksimum outstanding I/O komutlarının sayısını belirler.

Örneğin:

DQLEN = 128
ACTV  = 128
QUED  = 500

Bu durumda mevcut queue kapasitesinin tamamı kullanılmakta ve 500 I/O isteği sırada beklemektedir.

Sürekli artan veya uzun süre yüksek kalan QUED değeri şu durumlara işaret edebilir:

  • Adapter Queue Saturation
  • Device Queue Saturation
  • Storage path congestion
  • HBA queue limitinin yetersiz kalması
  • Storage sisteminin gelen I/O yükünü karşılayamaması

Kısa süreli ve anlık QUED artışları her zaman problem anlamına gelmez. Değerlerin sürekli yüksek kalması ve aynı anda GAVG/KAVG değerlerinin yükselmesi önemlidir.

Queue Depth değerleri analiz edilmeden doğrudan artırılmamalıdır. HBA, ESXi, storage port ve array üzerindeki toplam yük dikkate alınmadan yapılan artış, darboğazı çözmek yerine storage sistemine daha fazla I/O göndererek problemi büyütebilir.

Pratik latency eşikleri

Storage latency değerlendirmesinde tek bir evrensel sınır bulunmaz. All-Flash Array, NVMe, SAS, NL-SAS ve farklı uygulama türleri için beklenen değerler değişebilir.

Genel bir başlangıç noktası olarak:

GecikmeGenel değerlendirme
< 5 msÇok iyi
5–10 msİyi
10–20 msİzlenmeli
> 20 msAraştırılmalı
> 50 msKritik performans problemi olabilir

Bu değerler tek başına karar vermek için yeterli değildir. Gecikmenin ne kadar süre devam ettiği, hangi workload sırasında oluştuğu ve tüm VM’leri mi yoksa belirli VM’leri mi etkilediği birlikte değerlendirilmelidir.

Örneğin backup, snapshot consolidation veya büyük veri aktarımı sırasında oluşan kısa süreli latency artışı ile normal iş saatlerinde sürekli görülen 30 ms latency aynı şekilde yorumlanmamalıdır.

Sorun giderme karar ağacı

GAVG yüksek, DAVG yüksek, KAVG düşükse

GAVG: 40 ms
DAVG: 35 ms
KAVG: 5 ms

Muhtemel problem storage tarafındadır.

Kontrol edilmesi gerekenler:

  • Storage Array latency değerleri
  • Controller CPU ve cache kullanımı
  • Disk Pool ve RAID Group durumu
  • RAID rebuild veya disk failure
  • FC switch port counters
  • CRC, link reset ve packet error değerleri
  • iSCSI network latency ve packet loss
  • Storage port utilization
  • Path durumu ve load balancing

GAVG yüksek, DAVG düşük, KAVG yüksekse

GAVG: 40 ms
DAVG: 5 ms
KAVG: 35 ms

Muhtemel problem ESXi host veya VMkernel tarafındadır.

Kontrol edilmesi gerekenler:

  • HBA Queue Depth
  • Driver ve firmware uyumluluğu
  • VMware Compatibility Guide uyumu
  • Multipathing policy
  • Dead veya degraded path
  • ESXi patch seviyesi
  • Adapter saturation
  • VMkernel logları

Hem DAVG hem KAVG yüksekse

Sorun hem storage tarafında hem de ESXi queue yapısında olabilir. Storage cihazının yavaş cevap vermesi, I/O isteklerinin ESXi üzerinde birikmesine ve KAVG değerinin de yükselmesine neden olabilir.

Bu nedenle önce DAVG tarafındaki temel problem araştırılmalı, daha sonra queue ve VMkernel davranışı yeniden değerlendirilmelidir.

Kontrol edilmesi gereken loglar

ESXi üzerinde storage sorunları araştırılırken aşağıdaki loglar önemlidir:

/var/log/vmkernel.log
/var/log/vobd.log
/var/log/hostd.log

Özellikle vmkernel.log içerisinde şu ifadeler aranabilir:

grep -Ei "APD|PDL|NMP|HBA|abort|reset|timeout|latency|path" /var/log/vmkernel.log

Aşağıdaki olaylar storage bağlantı veya performans problemlerine işaret edebilir:

  • Command timeout
  • I/O abort
  • Device reset
  • HBA reset
  • Path failover
  • All Paths Down – APD
  • Permanent Device Loss – PDL
  • NMP path selection sorunları

esxtop verilerini CSV olarak toplamak

Sorun anlık değilse veya belirli saatlerde yaşanıyorsa esxtop batch mode kullanılarak veri toplanabilir.

Örneğin iki saniyede bir, 30 örnek almak için:

esxtop -b -d 2 -n 30 > /tmp/esxtop-storage.csv

Daha uzun süreli analizlerde dosya boyutu dikkate alınmalı ve ESXi filesystem üzerinde yeterli boş alan bulunduğu doğrulanmalıdır.

Toplanan CSV dosyası daha sonra Excel, Perfmon veya performans analiz araçlarıyla incelenebilir.

Genel değerlendirme

VMware ortamında yaşanan performans problemlerinde yalnızca sanal makinenin CPU ve memory değerlerine bakmak yeterli değildir. Birden fazla VM aynı anda yavaşlıyorsa ortak kullanılan datastore, storage adapter ve SAN altyapısı mutlaka kontrol edilmelidir.

Temel yorumlama mantığı şu şekilde özetlenebilir:

DAVG yüksek → Storage, SAN veya fiziksel disk tarafını incele

KAVG yüksek → ESXi, VMkernel, queue, driver ve HBA tarafını incele

GAVG yüksek → Sanal makineye yansıyan toplam storage gecikmesini incele

QUED yüksek → Queue saturation veya storage path congestion ihtimalini araştır

Doğru teşhis için d Disk Adapter View ile başlanabilir; ardından u Disk Device View ve v Disk VM View kullanılarak problemin ilgili LUN, datastore, VMDK veya sanal makine seviyesine kadar daraltılması gerekir.

Storage latency analizi, VMware performans sorun gidermenin en önemli parçalarından biridir. DAVG, KAVG ve GAVG değerlerinin doğru yorumlanması sayesinde sorunun ESXi hosttan mı, SAN altyapısından mı yoksa Storage Array tarafından mı kaynaklandığı kısa sürede belirlenebilir.

Sanalizasyon, VMware ve altyapı alanında çalışan ekipler için faydalı olacağını düşünüyorsanız bu içeriği paylaşarak daha fazla kişiye ulaşmasına katkı sağlayabilirsiniz.