Am fost curios zilele astea cate IOPS-uri imi duce SSD-ul. Viteza e destul de bunicica, dar eram curios si cate operatii pe secunde poate duce.
Probabil sunt mai multe metode pentru a afla cate IOPS-uri poate un HDD (iostat, htop), dar eu as vrea sa fac un benchmark.
Am folosit comanda fio. Se gaseste in pachetul cu acelasi nume. Am rulat comanda pe SSD si pe un stick USB. (PS: Conteaza si sistemul de fisiere si ioschedueler-ul, pe ext4 am scos mai mult cu ~500 de IOPS-uri fata de btrfs)
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=testio --filename=testio --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=50
rwmixread balanseaza scrierile/citirile. 0 inseamna ca nu se va citi de pe disk in momentul benchmark-ului, 100 inseamna ca nu se va scrie.
Un output din timpul bench-ului arata asa:
[17.5% done] [0KB/122.9MB/0KB /s] [0/31.5K/0 iops] [eta 00m:33s]
Ce e ingrosat e numarul de IOPS-uri.
Ni se prezinta la final si un ouput mai detaliat:
testio: (groupid=0, jobs=1): err= 0: pid=8787: Sat Feb 27 23:32:40 2016 write: io=680140KB, bw=108631KB/s, iops=27157, runt= 6261msec cpu : usr=3.26%, sys=36.74%, ctx=53202, majf=0, minf=8 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0% issued : total=r=0/w=170035/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=64 Run status group 0 (all jobs): WRITE: io=680140KB, aggrb=108631KB/s, minb=108631KB/s, maxb=108631KB/s, mint=6261msec, maxt=6261msec
Ne intereseaza bucata cu write (sau read) si bucata cu iops, care este media de IOPS-uri.
Putem de asemenea sa vedem numarul de iops-uri in timp real folosind htop sau comanda iostat 1 din pachetul sysstat.
Linux 4.4.0-8-generic (lennix) 27.02.2016 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 8,34 0,56 3,89 25,39 0,00 61,82 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 734,05 1853,65 3645,81 7601916 14951688 zram0 0,32 0,55 0,74 2252 3024 zram1 0,38 0,78 0,74 3192 3020 sdd 10,32 18,34 1078,23 75201 4421900
Ne intereseaza tps (transactions per second).