fioでtrimのベンチマーク方法教がわからないのとベンチマークソフトのバージョン差異
trimのベンチマーク方法がわからない
- 前回のdiscardオプションで触れたtrimについてもfioではベンチマークができる
- そのためtrimについて比較を行おうとしたところエラーが出た
[comicsong@comicsong fio]$ fio iotest.ini -rw trim test: (g=0): rw=trim, bs=4K-4K/4K-4K/4K-4K, ioengine=psync, iodepth=1 ... fio-2.13-18-gc915 Starting 8 processes fio: pid=30434, err=25/file:ioengines.c:307, func=td_io_queue, error=Inappropriate ioctl for device fio: pid=30435, err=25/file:ioengines.c:307, func=td_io_queue, error=Inappropriate ioctl for device fio: pid=30432, err=25/file:ioengines.c:307, func=td_io_queue, error=Inappropriate ioctl for device
- fioのエラーかと思い最新版を導入 github.com
configure
,make
,sudo make install
で入れたところ今度はioengine
でも失敗するlibaio-devel
パッケージ不足が原因のためsudo yum install libaio-devel
して再度maketrimについても同様の問題かと思ったが、trimコマンドのパッケージがわからず
fstrim
コマンドはutil-linux
なので最新版が導入済み
- 複数パッケージを入れて都度makeしたが結局このエラーは解消されず
fioのバージョン違いによるベンチマークスコア比較
- 結果としてrpmパッケージ版とソースインストール版がバージョン違いで共存している状態になった
- ベンチマークはソフトウェアバージョンも同一であることが望ましいが実際どの程度差があるのだろうとテストしてみた
[comicsong@comicsong fio]$ fio --version fio-2.2.8 [comicsong@comicsong fio]$ /usr/local/bin/fio --version fio-2.13-18-gc915
- 環境はこちらと共通 e6zout.hatenablog.jp
- 設定はブレ幅が小さくなるようにruntimeを5分に変更した
[global] size=500m runtime=300 loops=3
- 2.2.8 (RPMパッケージ版)で実施
[comicsong@comicsong fio]$ fio iotest.ini -rw randwrite | head -n 7 test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=4 ... fio-2.2.8 Starting 8 processes test: (groupid=0, jobs=8): err= 0: pid=30534: Thu Jul 28 22:59:39 2016 write: io=42664MB, bw=145617KB/s, iops=36404, runt=300021msec
- 2.13-18 (ソースインストール版)で実施
[comicsong@comicsong fio]$ /usr/local/bin/fio iotest.ini -rw randwrite | head -n 7 test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=4 ... fio-2.13-18-gc915 Starting 8 processes test: (groupid=0, jobs=8): err= 0: pid=30605: Thu Jul 28 23:11:44 2016 write: io=43638MB, bw=148933KB/s, iops=37233, runt=300034msec
- まとめ
- trim詳しい方いらっしゃいましたら教えてください
- fioバージョンによる差異は
2.2.8
と2.13-18
であれば結果は誤差の範囲だった