fioでIO性能を測る
fioでIO性能を測る方法を説明します.
かなり難しいです.
Debian 5.10.0-11 で行います.
インストール
su -
apt -y install fio
fio --version
結果
fio-3.25
ベンチマーク定義 0 (最小構成)
a.fio という以下の内容のファイルを作ります
[job]
size=128m
動作の説明
カレントディレクトにファイルが作成され,
そのファイルに対する操作が行われる.
操作: read (Sequential read, 初期設定)
block size: 4KB (初期設定)
total I/O size: 128MB
ファイル名: job.0.0
4KBの操作を合計128MB行うので,read操作は32768回行われる.
job.0.0 というファイル(128MB以上)がなければ作成され,あればそれが使用される.
実行方法
fio a.fio
実行結果
$ fio a.fio
job: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
fio-3.25
:
(略)
:
Run status group 0 (all jobs):
READ: bw=736MiB/s (771MB/s), 736MiB/s-736MiB/s (771MB/s-771MB/s), io=128MiB (134MB), run=174-174msec
Disk stats (read/write):
sda: ios=407/0, merge=0/0, ticks=77/0, in_queue=77, util=52.24%
コメント
省略しすぎて,初期設定を知らないと理解しづらい.もう少し書いた方が分かりやすい.
ベンチマーク定義 1 (ランダムリード)
[job]
rw=randread
size=128m
filename=/tmp/abc
bs=1k
説明
/tmp/abcというファイルが作成され,
そのファイルに対するrandread(ランダムリード)操作が行われる.
操作: randread
block size: 1KB
total I/O size: 128MB
ファイル名: /tmp/abc
128MB/1KB = 131072 回のI/O操作が行われる.
ベンチマーク定義 2 (ランダム/シーケンシャル リードライト)
[global]
size=128m
filename=/tmp/abc
bs=1k
[job0]
rw=randread
[job1]
rw=randwrite
[job2]
rw=read
[job3]
rw=write
説明
[global]で書いた設定は,すべてのジョブ( [job0]~[job3])で有効.
[job0]は,[global]の設定を引き継ぎつつ,randread操作を指定.
よって
[job0]
操作: randread
block size: 1KB
total I/O size: 128MB
ファイル名: /tmp/abc
となる.
同様に,以下の様になる.
[job1]
操作: randwrite
block size: 1KB
total I/O size: 128MB
ファイル名: /tmp/abc
[job2]
操作: read (Sequential read)
(略)
[job3]
操作: write (Sequential write)
(略)
コメント
すべてのジョブ( [job0]~[job3])は、同時に行われます。
この記事が気に入ったらサポートをしてみませんか?