CEPH Benchmark

BulutWiki sitesinden
Admin (mesaj | katkılar) tarafından oluşturulmuş 13:37, 18 Haziran 2018 tarihli sürüm (Fio)
Şuraya atla: kullan, ara

Fio

Fio Programı Argümanları Fio kullanılabilecek olan disk bechmark yazılımlarından birisi, ilk olarak hangi argümanlar ile çağrılabileceğine bakalım:

–runtime= Saniye olarak programın ne kadar çalıştırılacağı
–max-jobs=Açılacak maksimum program/iş parçacığı (process/thread) sayısı
–numjobs= Aynı workload üzerinde çalışacak iş sayısı
–ramp_time= Saniye olarak istatistikler alınmaya başlamadan geçmesi gereken süre . Bu süreyi programın tampon bellekleri doldurması veya stabil sonuçlar almak için kullanabilirsiniz. Bu değeri 15  runtime süresini 60  olarak ayarlarsınız program toplam 75 saniye çalışacak 15 saniye sonra istatistikleri yazmaya başlayacaktır.
--directory= Test dosyalarının yaratılacağı dizinin adı
–name= Test dosyasın adı
–bs= blok büyüklüğü (4k, 8k vb)
–size= test için yaratılacak olan dosyanın büyüklüğü, test normalde bu dosya büyüklüne erişilinceye kadar devam eder. runtime ile verilen çalışma süresine erişilir ise dosya büyüklüğü değerine erişilememiş olsa dahi program sonlandırılır.
–time_based= size argümanında tanımlanan dosya boyutuna erişilse bile testler runtime argümanında tanımlanan süre boyunca devam eder
–group_reporting= raporlar grup olarak üretilir. (max_jobs ile tanımlanan her iş için ayrı repor üretilmez)
–ioengine= I/O işlemi nasıl yapılacağını tanımları (sync vb)
–direct= O_DIRECT sistem cağrısı ( non-buffered I/O) ile çekirdek page tablosu (kernel page cache) kullanılmaması
–sync: O_DSYNC çağrılarak I/0 yazma işlemi tamamlandığından emin oluması.
–iodepth= Tek bir dosya üzerinde iş yapan iş parçacıklarının sayısı. Yazma işlemini sync olarak yapan ioengine’ler için arttırmanın bir değer artışına neden olma ihtimali düşük. Async olarak yapan ioengine’ler için arttırılması denenebilir.
–rw= Yapılacak olan I/O’nun çeşidi
   • read = Sıralı okuma
   • write = Sıralı yazma
   • trim = Sıralı trim (linux)
   • randread = rastgele okuma
   • randwrite = rastgele yazma
   • randtrim = rastgele trim
   • rw = rastgele rw
   • randrw = rastgele okuma/yazma
–rwmixread= rastgele yapılacak olan okuma/yazma testlerinde okuma oranı (atanmış değeri 50:50)
–rwmixwrite= rastgele yapılacak olan okuma/yazma testlerinde yazma oranı (atanmış değeri 50:50)
–output= test sonuçlarının yazılacağı dosya adı
–write_bw_log= Benchmark sırasında bantgenişliği değerlerinin yazılacağı dosyanın ismi. Genellikle grafik çizme amaçlı olarak kullanılır.
–write_iops_log= Benchmark sırasında bantgenişliği değerlerinin yazılacağı dosyanın ismi. Genellikle grafik çizme amaçlı olarak kullanılır.
–write_lat_log= I/O Operasyonlarının ne kadar zamanda bitirlildiğinin yazılacağı dosyanın adı.
--cpuload= fio programının işlemci kullanımını verilen değeri maksimum  yüzde kullanacak şekilde ayarlar. (1-100 arası değer alır)
  • Örnek Kullanım

Test ederken numjobs,iodepth değerlerini 1 olarak başlayıp I/O satüre olacak değlere kadar arttırmanızı tavsiye ederim. Ceph benchmarkları  sırasında 128k blok büyüklüğü için için kullandığım fio komutu. numjobs değeri istemcinin yaratabileceği maksimum I/O miktarı yaratması için 128 olarak ayarlandı. Bu değer muhtamalen 128’e ulaşmadan I/O satüre olacaktur. 1’den başlayarak arttırarak sizin sisteminiz için hangi değerde satüre olacağını deneyebilirsiniz.

/usr/local/bin/fio --directory=/ceph/ --time_based --direct=1 --rw=write --bs=128k --size=20G --numjobs=128 --runtime=240 --group_reporting --name testfile --output=ceph128kw.txt

fio sonuçlarının daha anlamlı olarak görebilmek için  fioparse.sh betiğini kullanıyoruz. Github’tan indirip kurabilirsiniz. 1Gbps uplink’olan sunucudan

fioparse.sh ceph128kw.txt
test  users size         MB       ms      min      max      std    IOPS    50us   1ms   4ms  10ms  20ms  50ms   .1s    1s    2s   2s+ 
  write128 128K w  101.428  157.690    6.000 5374.000  166.140    811,                        1    11    17    12    56     0     0

10Gbps uplink olan sunucudan

test  users size         MB       ms      min      max      std    IOPS    50us   1ms   4ms  10ms  20ms  50ms   .1s    1s    2s   2s+ 
  write128 128K w  121.529  131.200    6.000 2124.000  134.880    972,                        3    27    11     3    53     0     0