EVA Depolama Ünitesinde Perfomans Analizi

Storage & Backup
     
Zaman zaman siz de “Sunucuda bir sorun mu var verilere erişim yavaş gibi” ya da “Kenan EVA yı bir kontrol etsene” gibi sorularla karşı karşıya gelebilirsiniz. Bu tip sorular artık defacto standartına  dahil olmuştur. Sadece “Kenan” kısmının yerine “Ahmet Orhan” gibi isimler gelmektedir.
Ya da siz de bizim gibi storage ını farklı bir storage ile değiştirmek ya da üst seviye bir storage üzerinde konsolide etmek istiyor olabilirsiniz. 
Öyleyse bu doküman tam size göre. Hazırlanın başlıyoruz.
 
            Storage’ın genel karakteristiğini ölçmek için belli bir aralıktaki değerlerini ölçmemiz gerekir. Geriye dönük veriyi evaperf adı verilen komut satırı uygulaması ile çıkarabiliriz. Bu uygulama çıktı olarak tipi metin olan bir dosya üretiyor. Evaperf’i    storage ın yoğun çalıştığı belli saatler arası çalıştırabileceğimiz gibi, belli bir gün hafta ya da ay olabilir. Burda dikkat edilmesi gereken nokta ne kadar süre ile çalıştıracağımız ve kaç dakika ya da saniyede bir çalıştıracağımızdır. Çünkü bu değerler verinin büyümesine ve analizinin zorlaşmasına sebep olur. Eğer verinin karakteristiği çok sık değişiyor ve aralık az ise çalıştırma aralığını düşük seçebiliriz. Aksi taktirde çalıştırma aralığı 30sn 1,2 dak gibi değerler olabilir. Şimdi Evaperf’in zaman aralıgını belirttiğimiz parametrelerini aşağıda görelim.
evaperf all -cont 30 -dur 3600 > eva_performance.txt

Bu örnekte evaperf toplamda 3600 sn(1 saat) süresince 30 sn de bir çalıştırılmaktadır. Ve çıktıyı eva_performance.txt dosyasına yazmaktadır. Çıktı dosyası aksi belirtilmediği sürece csv formatındadır. Peki evada neleri gözleyebiliriz ?
Evada neyi gözleyebileceğimiz evaperf komutunun arkasından gelen parametre ile belirtiliyor. Şimdi bu parametrelere bir bakalım.

as
Storage Genel durumu
cs
Kontrollerların durumları
pd
Storage üzerindeki disklerin performansı
pdg
Disk gruplarının performansı
pda
Disk aktiviteleri
vd
Virtual disklerin( lunların) performansı
vdg
Virtual disk gruplarının performansı
vdrl
Sanal disk okuma-gecikme süresi histogramı
vdrlg
Sanal disk okuma-gecikme süresi histogramı grafiği
vdwl
Sanal disk yazma-gecikme süresi histogramı
vdwlg
Sanal disk yazma-gecikme süresi histogramı grafiği
vdts
Sanal disk transfer büyüklüğü histogramı
vdtsg
Sanal disk transfer büyüklüğü histogramı grafiği
hc
Sunucuların bağlantıları
ps
Storage port durumları
hps
Sunucu portu durumları ( host port)
drt
Veri replikasyon tünelleri
all
As,cs,vd,vdg,hc,ps,hps,pd,pdg,drt parametrelerini çalıştırır.

          Çıktı dosyasının büyüklüğünün fazla olmaması için sadece istenilen parametreleri çalıştırmak gerekiyor. Ama bütün hepsinin çalıştırılması istendiği durumlarda da analiz için her bir parametreden gelen çıktıyı farklı dosyalara aktarmak, daha anlaşılabilir hale getirmek lazım. Bunu da evaperf in çalıştırıldığı dizin deki EVAPerf-TLVIZ-Format.exe dosyası ile yapabiliriz. ( ben de evaperf “C:\Program Files\Hewlett-Packard\EVA Performance Monitor” altında bulunuyor). Şimdi bu programcık ile neler yapabiliriz ona bakalım.

All parametresi ile bir çıktı dosyası ürettiğimizi düşünelim: output_all_day.csv
EVAPerf-TLVIZ-Format programını çalıştırarak browse dan evaperf çıktı dosyasını seçelim.


Build TLViz files butonuna bastığımızda her bir parametre için farklı dosyalar oluşur. Bu dosyalardan TLVIZ ile başlayanlar HP nin “Timeline Visualization” adı verilen programa girdi sağlar. Bu program ile çıktıları grafik hale getirebiliriz. Programda bedava değildir diyor ama ben aşağıdaki adresten indirdim :)


EVAPerf-TLVIZ-Format programının başka bir özelliği ile oluşturdugumuz dosyaları bir Access veritabanına farklı tablolar halinde atabiliyoruz. Bu yöntem bence okunabilirlik olarak da grafik oluşturma özelliği de tercih edilebilir. Excele aktardıgımız dosyada veri türü sorunu yaşadım ben çünkü. Bu özelliği kullanabilmemiz için, EVAPerf-TLVIZ-Format programı ile aynı path içerisinde EVADATA.mdb Access dosyasını önceden oluşturmamız gerekiyor.

Şimdi en çok kullanılan metriklere kısaca bir göz atalım.

Host port: Bu metricle EVA’nın hostlara bağlantıyı sağlayan portlarının kontrollerlara göre utulizasyonları görülebilir. Burada portlara yapılan yazma ve okuma isteklerini, bu işlemde görülen gecikme süresini, ve okuma – yazma oranını MB/s cinsinden görebiliriz. Bu metric sunucu bazında bir değer vermediğinden toplam performans konusunda bir fikir verebilir.

Virtual disk( vd) :  EVA dan tanıtılmış bütün vdiskler( snapclone ve snapshot dahil) hakkında utulizasyon bilgileri görülebilir. Burada dikkat edilecek nokta aktif-aktif çalışan EVA larda(4000,6000,8000 ailesi) her vdisk için her bir kontrollerdan bir satır gelmektedir. Yani bir vdisk için değerleri hesaplamak istediğimizde iki kontrollardan gelen değerleri toplamamız gerekiyor.

Fiziksel Disk(pd):  Her bir disk hakkında bilgi veriyor. Virtual disk metriğinin verdiği bilgilerden farkı bu bilgilerin her bir fiziksel disk bazında oluşu ve levelling, sparing, metadata güncellemeleri gibi EVA’nın kendi iç aktivitilerinin de dahil edilmesidir.

EVA Host Connection   Performance: Evaya bağlanan sunucuların HBA ları bazında performans bilgisi verir.

Array Status(as) : EVA storage bazında MB/s ve yapılan istek(request) cinsinden değer verir.

Controller Status(cs):  Kontorller utulizasyonunu verir. Burada iki değere bakmamız lazım. CPU% değeri kontrollerın toplam ne kadar cpu harcadığını, data% değeri ise harcanan bu değerin ne kadarı sunuculardan gelen veriyi işlemekle geçtiğini gösteriyor.
Üstte yazan her bir metriğin çıktısına baktığımızda bu metriklere ait bir sürü değer geldiğini görmüşsünüzdür. Bu değerler mantık olarak aynı özelliği ifade etse de ait oldugu metriğe göre yorumlanmalıdır. Şimdi de bu değerlere bakalım.

Read Req/s:   Yapılan read istek sayısını gösterir. İstek sunucudan EVA’nın kontollerına oldugu gibi, kontrollerdan diske de olabilir.

Read MB/s:  Okuma işlemlerinin MB cinsinden büyüklüğüdür.

Read Latency: Sunucunun okuma istedi gönderdikten ne kadar süre sonra cevap alabildiğidir.

Write Req/s:   Gelen yazma istek sayısını gösterir.

Write MB/s:  Yazma işlemlerinin MB cinsinden büyüklüğüdür.

Read Hit Req/s: Cache den sağlanan istek sayısını gösterir.

Read Hit Latency: Cache den sağlanan isteğin gecikme süresidir.

Read Miss Req/s :  cache de bulunamayıp disklerden sağlanan saniyedeki istek sayısını gösterir.

Read Miss Latency: okuma isteği alınıp disklerden karşılanana kadar geçen süredir.

Drive Queue Depth: Kontrollerdan gelen read ve write isteklerinin sayısıdır.
 

Metrik ve Değerlerinin Yorumlanması


1.  Eğer amacınız performans sorunu hakkında bir analiz yapmak ise önce sunucu tarafından görünen manzara ile başlamanız gerek. Çünkü EVA ya gelene kadar aradaki IO katmanlarında bir sorun olabilir. Sar komutu çıktısı ile disklere yapılan erişimlerde latency için avwait, avserv değerlerine ve bandwidth için saniye başına yapılan IO değerine bakın. Sunucunuz OLTP işlemleri yapan bir sunucu ise latency değeri, sıralı okuma ya da yazma işlemi yapan backup  sunucu ise IOPS önem arzediyor. Sunucu tarafını değerlendirdikten sonra  EVA da nerede sorun var diye bakabiliriz.

          Latency tabanlı bir sorununuz varsa host portlarına, controllar utulizasyonlarına ve virtual disk kullanımına bakın. Storage üzerindeki her birimin bir doyum noktası vardır. Bu doyum noktası aşıldığı zaman latency denilen gecikmeler yaşanır.  Bu durumda aşağıdaki unsurlar dikkate alınabilir.

·         Kontroller birimleri %40 ortalama ile çalışması istenen bir durumdur. Zira  kontrollarınızdan biri arıza yaparsa sağlam olan diğerinin yükünü de alacağı için Bu utulizasyon değeri %80 lerin üstüne çıkacaktır.  Kontrolların yüksek utulizasyonla çalışması sonucu gelen taleplerin karşılanmasında gecikmeler yaşanabilir.
  • 4 GB lık bir Host port 360 MB/s kadar veri transferi yapabilir.
  • 15K disk 10K dan %30 performanslı çalışabilir(Random erişimde)
  • Vraid5 yazarken parity işlemleri yaptığından bütün bir disk grubun performansını etkiler.
  • Sıralı okuma ve yazma işlemleri (backup gibi) birimleri doyum noktasına ulaştırdığından latenc yi etkiler.
  • Disk grup içerisindeki disk sayısı performansı doğrudan etkiler.
        Random Read işlemleri genelde cache den karşılanamadığıdan vd metriğinin read miss latency değerine bakmak gerekir. Bu değer 30 ms. kadar belki kabul edilebilir fakat 10 veya 20 den az olması gerekiyor.

         Yazma işlemleri cache kullanımı nedeniye okuma işleminden daha hızlı olmaktadır. Çünkü istek cache e  yazıldıktan sonra karşılandı olarak sunucuya dönmektedir. 5 ms nin üstünde  değerlerde sorun olabilir. Bu ise cache in yetersiz gelmesinden kaynaklanabilir. Ya da cache teki datanın disklere flush edilmesi işlemi yeteri kadar hızlı olmazsa yazma işlemi bekletilebilir. Bu da latency yi artırır.  Burada pd,pdg metriclerine bakılarak analizde bir alt seviyeye inilebilir.

          Disklere yapılan IO nun yetersiz geldiğini düşünüyorsanız öncelikle arkada istekleri karşılayan disk yapısının yeterli olup olmadığını gözden geçirmeniz gerek. Bir Eva storage üzerinde tanıtılan disklerin arkasındaki fiziksel disklerden alınabilecek IOPS sayısı aşağıdaki gibidir.

Disk Tipi
Vraid Tipi
Disk Başı alınan Sunucu IOPS
15K Fiber Channel
VRAID-1 
115

VRAID-5     
73
10K Fiber Channel
VRAID-1      
83

VRAID-5
53
250GB FATA
VRAID-1      
62

VRAID-5      
39
400/500GB FATA
VRAID-1     
42

VRAID-5      
26
1000GB FATA
VRAID-1
54

VRAID-5      
34

        Eğer alınan IO değeri az ise disk grup içerisindeki disk sayısı yetersiz geliyor olabilir. Tabloda görüldüğü üzere Vraid5 diskler daha az IO vermektedir. Vraid1 diske verinizi taşımanız ya da disk sayısını artırmanız gerekebilir.
        Hem latency hem de IO için host portlarının utulizasyonuna bakılabilir. Eşit bir dağılım gözükmüyorsa host tarafında load balancing düzgün ayarlanmamış olabilir ve doyum noktalarında sorun yaşanabilir.

2. Eğer amacınız toplam IOPS değerini çıkarmak ise as, vd,vdg gibi metriclere bakılabilir. Storage’ın yoğun çalıştığı anlardaki değerleri bulmak için evaperf in cont parametresini 30 sn -1 dk. Vererek belli bir zaman aralıgında çalıştırmamız gerek. Mesela storage ayın son 10 günü sabah 7-aksam 5 arası yoğun çalışıyorsa, dakikada 1 çalışan aşağıdaki gibi bir batch script hazırlanıp, evaperf in oldugu Windows sunucuda zamanlanmış görev olarak atanabilir.

evaperf as –cont 60 –dur 36000 > eva_toplam_io.txt
evaperf vd –cont 60 –dur 36000 > eva_toplam_vdisk_io.txt

     Daha sonra elde ettiğimiz çıktıları, Excel, Access e aktarıp grafiğini çıkarabiliriz ya da Timeline Visualization programı ile elde ettiğimiz grafiği inceleyebiliriz. Bu grafiklerde çok nadir yapılan peak değerlerinden ziyade düzenli olarak yapılanlar dikkate alınmalı ve bu peak değerlerinin bir gereksinim olduğu düşünülmelidir.


Kaynaklar:
 

Yorumlar  

 
#1 kenan 2010-10-04 13:03
evaperf as -cont 1 şeklinde duration parametresi verilmeden çalıştırıldığın da devamlı güncellenen bir çıktı veriyor. Anlık olarak değişenleri izleyebilmek için bu çalıştırma şekli faydalı..
 

Yorum ekle

Güvenlik kodu
Yenile