ベンチマーク/データストレージデバイス
2018年2月6日 (火) 23:43時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://imgur.com/」を「https://imgur.com/」に置換)
関連記事
この記事では HDD, SSD, USB メモリなどの I/O デバイスをベンチマークする Linux アプリを複数紹介しています。
概要
Linux で I/O をベンチマークする方法は様々です。
- hdparm の -Tt スイッチを使うことで連続データ読み込み速度を測定できます。この方法はパーティションのアライメントの影響を受けません。
- gnome-disk-utility パッケージには gnome-disks という名前のグラフィカルなベンチマークが含まれています。最低・最大・平均読み込み速度や平均アクセス速度をグラフィカルに表示します。この方法はパーティションアライメントの影響を受けません。
- dd ユーティリティを利用して読み書き両方の速度を測定できます。この方法はパーティションアライメントの影響を受けます。つまり、パーティションのアライメントが正しくされていない場合、読み書き速度でそのことが確認されます。
- Bonnie++ (注意: デフォルトでは bonnie++ はディスク上に RAM のサイズを最低2回は書き込みます。SSD を保護したい場合、デフォルトオプションは使わないようにしてください)。
hdparm を使う
# hdparm -Tt /dev/sdX /dev/sdX: Timing cached reads: x MB in y seconds = z MB/sec Timing buffered disk reads: x MB in y seconds = z MB/sec
gnome-disks を使う
# gnome-disks
GUI からベンチマークボタンを選択してください ("More actions..." => "Benchmark Volume..."): 例。
systemd-analyze を使う
# systemd-analyze plot > boot.svg
上記コマンドはブートシーケンスの画像をプロットします: カーネルの起動時間, ユーザー空間の起動時間, 各サービスにかかった時間: 例。
dd を使う
まず、最低でも 1.1 GB の空き領域が存在する SSD のディレクトリ (ディレクトリにはユーザーが読み書き実行できる権限が必要) に移動して、テストファイルを書き込んで書き込み速度を測定します:
$ cd /path/to/SSD $ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress 1024+0 records in 1024+0 records out w bytes (x GB) copied, y s, z MB/s
次に、デバイスからの読み込み速度を直接測定するためにバッファキャッシュを消去:
# echo 3 > /proc/sys/vm/drop_caches $ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress 1024+0 records in 1024+0 records out w bytes (x GB) copied, y s, z MB/s
バッファからファイルが消去されたら、コマンドを再度実行してバッファキャッシュの速度を確認:
$ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress 1024+0 records in 1024+0 records out w bytes (x GB) copied, y s, z GB/s
最後に一時ファイルを削除:
$ rm tempfile
Core Utilities#dd も参照。
dcfldd を使う
Dcfldd は dd のように平均速度を MB/s などの形式で出力しませんが time コマンドで計測ができます。
ディスクを消去する時間を測定:
# time dcfldd if=/dev/zero of=/dev/sdX bs=4M 18944 blocks (75776Mb) written.dcfldd:: No space left of device real 16m17.033s user 0m0.377s sys 0m51.160s
dcfldd コマンドの出力をかかった時間の秒数で割ることで MB/s を計算できます。例: 75776Mb / (16.4 分 * 60) = 77.0 MB/s。