古いudisksベンチマークレポートについて話すfio
ことはできませんが、おそらくあなたにとって役立つでしょう。fio
現在、Precise To ZestyからUbuntuのすべてのバージョンで利用可能です
ユニバースリポジトリをアクティブ化したsudo apt-get install fio
後でインストールできます
一部の簡単なテストでは、pwd
(現在の作業ディレクトリ)がテストするパーティション上にあることを確認するだけで、テストするパーティションを選択できることが示されています。
たとえば、これは、東芝THNSNH128GBST SSD(私の/ 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%
同じコマンドでWestern Digital WD2003FZEX-00Z4SA0 HDD上のホームディレクトリで実行すると、次の出力が得られます。
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%
この回答を読みやすいサイズに保つために、実行中に生成された出力をトリミングしました。
私が興味深いと思った出力の説明:
これらのメトリックすべてについて、最小、最大の平均および標準偏差を取得していることがわかります。
スラットは提出待ち時間を示します-
clatは完了待ち時間を示します。これは、カーネルへの送信からIOが完了するまでの時間で、送信の待ち時間は含まれません。古いバージョンのfioでは、これはアプリケーションレベルのレイテンシを概算するための最良のメトリックでした。
latはかなり新しいようです。このメトリックは、IO構造体がfioで作成された直後に開始され、クラスの直後に完了するため、アプリケーションが体験することを最もよく表すものになります。これはおそらくグラフ化したいものです。
bw帯域幅は、per =の部分を除いて、一目瞭然です。ドキュメントによると、これは複数のワークロードを持つ単一のデバイスをテストするためのものであるため、各プロセスによって消費されたIOの量を確認できます。
この出力で行ったように、fioを複数のデバイスに対して実行すると、特定のワークロードをテストすることが目的であるという事実に関係なく、便利な比較を提供できます。
ハードドライブのレイテンシがソリッドステートドライブのレイテンシよりもはるかに高いのは当然のことです。
出典:
https://tobert.github.io/post/2014-04-17-fio-output-explained.html
https://github.com/axboe/fio/blob/master/README