Ich kann nicht mit dem alten Udisks-Benchmarking-Bericht sprechen, aber vielleicht fio
wird er Ihnen von Nutzen sein. fio
ist derzeit für alle Versionen von Ubuntu von Precise To Zesty verfügbar
Sie können es mit installieren, sudo apt-get install fio
nachdem Sie das Universe-Repository aktiviert haben
Einige schnelle Tests zeigen, dass Sie die zu testende Partition einfach auswählen können, indem Sie sicherstellen, dass sich das pwd
(Present Working Directory) auf der Partition befindet, die Sie testen möchten.
Hier sind zum Beispiel die Ergebnisse, die ich auf meiner Root-Partition auf einer Toshiba THNSNH128GBST-SSD (my / dev / sda) bekomme.
$ 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%
Das Ausführen in meinem Home-Verzeichnis auf einer Western Digital WD2003FZEX-00Z4SA0-Festplatte mit demselben Befehl führt zu der folgenden Ausgabe:
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%
Ich habe die während des Betriebs erzeugte Ausgabe gekürzt, um diese Antwort in einer lesbaren Größe zu halten.
Erklärung der Ausgabe, die ich interessant fand:
Sie können sehen, dass wir für alle diese Metriken einen minimalen, maximalen Durchschnitt und eine Standardabweichung erhalten.
Lamelle zeigt Übermittlungslatenz an -
clat zeigt die Abschlusslatenz an. Dies ist die Zeit zwischen der Übermittlung an den Kernel und dem Abschluss der E / A ohne Übermittlungslatenz. In älteren Versionen von fio war dies die beste Metrik zur Annäherung an die Latenz auf Anwendungsebene.
lat scheint ziemlich neu zu sein. Es scheint, dass diese Metrik in dem Moment beginnt, in dem die E / A-Struktur in fio erstellt und direkt nach clat abgeschlossen wird. Dies ist diejenige, die am besten darstellt, welche Anwendungen erfahren werden. Dies ist diejenige, die Sie wahrscheinlich grafisch darstellen möchten.
bw Bandbreite ist bis auf den per = Teil ziemlich selbsterklärend. In den Dokumenten wird angegeben, dass ein einzelnes Gerät mit mehreren Workloads getestet werden soll, sodass Sie sehen können, wie viel E / A von den einzelnen Prozessen verbraucht wurde.
Wenn fio wie bei dieser Ausgabe auf mehreren Geräten ausgeführt wird, kann es einen nützlichen Vergleich liefern, unabhängig davon, ob der Zweck darin besteht, eine bestimmte Arbeitslast zu testen.
Ich bin sicher, dass es keine Überraschung ist, dass die Latenz auf der Festplatte viel höher ist als die der Solid-State-Festplatte.
Quellen:
https://tobert.github.io/post/2014-04-17-fio-output-explained.html
https://github.com/axboe/fio/blob/master/README