GnomeDisks(gnome-disks
-以前はpalimpsest
として知られていた)はSMARTおよびいくつかのベンチマーク情報を提供します。私が収集したものから、以前はコマンドラインツールudisks
に基づいていましたが、これらのプロジェクトはマージされたように見えます。
新しいGnomeDisksユーティリティは、ベンチマークからのaverage結果を表示するだけですテスト。スクリーンショットから、palimpsestの以前のバージョンでは、結果に最大および最小の応答があるように見えます。
ベンチマークのすべての結果に興味があります。具体的には、最悪の場合に遅いI/Oのディスクを取り除くことで、ユーザーに悪影響を与えるディスクを見つけようとしています。また、このデータを経時的にマップしたいので、プログラムでデータを処理/エクスポートできるようにする必要があります。
udisksctl
(udisks2パッケージ内)を調べましたが、ディスクに関する一般的な情報とSMART情報のように見えます。
古いudisks
スタイルのベンチマークレポートを実行し、最小値と最大値を返すコマンドラインツールはありますか?
古いudisksベンチマークレポートには話せませんが、おそらくfio
が役に立つでしょう。 fio
は現在、Ubuntuのすべてのバージョンで Precise To Zesty から入手できます。
niverseリポジトリーのアクティブ化 の後に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%
この回答を読みやすいサイズに保つために、実行中に生成される出力をトリミングしました。
おもしろいと思った出力の説明:
これらすべてのメトリックについて、最小、最大平均、標準偏差が得られていることがわかります。
slatは送信レイテンシを示します-
clatは完了レイテンシを示します。これは、カーネルへの送信からIOが完了するまでの時間であり、送信遅延は含まれません。古いバージョンのfioでは、これはアプリケーションレベルのレイテンシを概算するための最良のメトリックでした。
latはかなり新しいようです。このメトリックは、IO構造体がfioで作成され、clatの直後に完了した瞬間に開始され、これがアプリケーションが経験するものを最もよく表すものになるようです。これは、おそらくグラフ化するものです。
bw帯域幅は、per =の部分を除き、一目瞭然です。ドキュメントでは、複数のワークロードを持つ単一のデバイスをテストすることを目的としているため、各プロセスでIOがどれだけ消費されたかを確認できます。
この出力で行ったように、fioを複数のデバイスに対して実行すると、特定のワークロードをテストすることが目的であるという事実に関係なく、有用な比較を提供できます。
ハードドライブのレイテンシーがソリッドステートドライブのレイテンシーよりもはるかに高いことは驚くことではありません。
ソース:
https://tobert.github.io/post/2014-04-17-fio-output-explained.html