Nie mogę rozmawiać ze starym raportem porównawczym udisks, ale być może fio
przyda ci się. fio
jest obecnie dostępny dla wszystkich wersji Ubuntu od Precise To Zesty
Możesz go zainstalować sudo apt-get install fio
po aktywacji repozytorium Universe
Niektóre szybkie testy wskazują, że możesz wybrać partycję do przetestowania, po prostu upewniając się, że pwd
(obecny katalog roboczy) znajduje się na partycji, którą chcesz przetestować.
Na przykład oto wyniki, które otrzymuję, uruchamiając go na mojej partycji głównej, która znajduje się na dysku SSD Toshiba THNSNH128GBST (my / dev / sda)
$ sudo fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=256M --numjobs=8 --runtime=60 --group_reporting
randwrite: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
...
randwrite: (groupid=0, jobs=8): err= 0: pid=15096: Wed Feb 15 13:58:31 2017
write: io=2048.0MB, bw=133432KB/s, iops=33358, runt= 15717msec
slat (usec): min=1, max=223379, avg=232.82, stdev=4112.31
clat (usec): min=0, max=16018, avg= 0.30, stdev=22.20
lat (usec): min=1, max=223381, avg=233.25, stdev=4112.55
clat percentiles (usec):
| 1.00th=[ 0], 5.00th=[ 0], 10.00th=[ 0], 20.00th=[ 0],
| 30.00th=[ 0], 40.00th=[ 0], 50.00th=[ 0], 60.00th=[ 0],
| 70.00th=[ 0], 80.00th=[ 1], 90.00th=[ 1], 95.00th=[ 1],
| 99.00th=[ 1], 99.50th=[ 1], 99.90th=[ 2], 99.95th=[ 3],
| 99.99th=[ 31]
bw (KB /s): min= 3473, max=241560, per=12.42%, avg=16577.30, stdev=28056.68
lat (usec) : 2=99.79%, 4=0.18%, 10=0.02%, 20=0.01%, 50=0.01%
lat (usec) : 100=0.01%, 250=0.01%, 500=0.01%
lat (msec) : 20=0.01%
cpu : usr=0.52%, sys=1.08%, ctx=3235, majf=0, minf=228
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
issued : total=r=0/w=524288/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
WRITE: io=2048.0MB, aggrb=133432KB/s, minb=133432KB/s, maxb=133432KB/s, mint=15717msec, maxt=15717msec
Disk stats (read/write):
sda: ios=0/197922, merge=0/84378, ticks=0/37360, in_queue=37324, util=93.41%
Uruchomienie w moim katalogu domowym na dysku twardym Western Digital WD2003FZEX-00Z4SA0 z tym samym poleceniem powoduje następujące wyniki:
randwrite: (groupid=0, jobs=8): err= 0: pid=15062: Wed Feb 15 13:53:32 2017
write: io=1299.6MB, bw=22156KB/s, iops=5538, runt= 60062msec
slat (usec): min=1, max=200040, avg=1441.http://meta.stackexchange.com/questions/122692/moderator-tools-make-merging-questions-a-little-easier74, stdev=11322.69
clat (usec): min=0, max=12031, avg= 0.41, stdev=32.24
lat (usec): min=1, max=200042, avg=1442.29, stdev=11323.05
clat percentiles (usec):
| 1.00th=[ 0], 5.00th=[ 0], 10.00th=[ 0], 20.00th=[ 0],
| 30.00th=[ 0], 40.00th=[ 0], 50.00th=[ 0], 60.00th=[ 0],
| 70.00th=[ 0], 80.00th=[ 1], 90.00th=[ 1], 95.00th=[ 1],
| 99.00th=[ 2], 99.50th=[ 2], 99.90th=[ 3], 99.95th=[ 9],
| 99.99th=[ 14]
bw (KB /s): min= 426, max=282171, per=13.12%, avg=2906.99, stdev=17280.75
lat (usec) : 2=98.88%, 4=1.03%, 10=0.05%, 20=0.04%, 50=0.01%
lat (usec) : 100=0.01%, 250=0.01%
lat (msec) : 10=0.01%, 20=0.01%
cpu : usr=0.09%, sys=0.25%, ctx=7912, majf=0, minf=227
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
issued : total=r=0/w=332678/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
WRITE: io=1299.6MB, aggrb=22155KB/s, minb=22155KB/s, maxb=22155KB/s, mint=60062msec, maxt=60062msec
Disk stats (read/write):
sdb: ios=0/94158, merge=0/75298, ticks=0/116296, in_queue=116264, util=98.40%
Obciąłem wydruk wygenerowany podczas pracy, aby zachować tę odpowiedź w czytelnym rozmiarze.
Wyjaśnienie wyjścia, które uznałem za interesujące:
Widać, że otrzymujemy minimalną, maksymalną średnią i odchylenie standardowe dla wszystkich tych wskaźników.
listwa wskazuje opóźnienie przesłania -
clat wskazuje na opóźnienie zakończenia. Jest to czas, który mija między podporządkowaniem do jądra a zakończeniem operacji we / wy, nie uwzględniając opóźnienia przesyłania. W starszych wersjach FIO był to najlepszy wskaźnik do przybliżania opóźnień na poziomie aplikacji.
lat wydaje się dość nowy. Wygląda na to, że ta metryka zaczyna się w momencie, gdy struktura IO jest tworzona w fio i jest uzupełniana zaraz po clat, co czyni ją tą, która najlepiej reprezentuje to, czego doświadczą aplikacje. Jest to ten, który prawdopodobnie będziesz chciał przedstawić na wykresie.
bw Przepustowość jest dość oczywista, z wyjątkiem liczby per = część. Dokumenty mówią, że jest przeznaczony do testowania jednego urządzenia z wieloma obciążeniami, dzięki czemu można zobaczyć, ile IO zostało zużyte przez każdy proces.
Gdy fio działa na wielu urządzeniach, tak jak zrobiłem to dla tego wyjścia, może zapewnić użyteczne porównanie bez względu na to, że jego celem jest przetestowanie określonego obciążenia.
Jestem pewien, że nie jest zaskoczeniem, że opóźnienia na dysku twardym są znacznie wyższe niż w przypadku dysków SSD.
Źródła:
https://tobert.github.io/post/2014-04-17-fio-output-explained.html
https://github.com/axboe/fio/blob/master/README