みんな
最近、ディスクのパフォーマンスをテストするために、fio を使用していくつかのテストを行いました。direct io と O_SYNC を使用するように fio を構成しました。以下は私の構成です。
[global]
invalidate=0 # mandatory
direct=1
sync=1
thread=1
norandommap=1
runtime=10000
time_based=1
[write4k-rand]
stonewall
group_reporting
bs=4k
size=1g
rw=randwrite
numjobs=1
iodepth=1
ただし、fio の実行中に iostat を介してディスク パフォーマンスを監視すると、次の出力が表示されました。
avg-cpu: %user %nice %system %iowait %steal %idle
0.12 0.00 0.08 3.81 0.00 95.98
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 39.50 0.00 176.00 0.00 1648.00 9.36 1.02 5.81 5.65 99.50
wrqm/s は 39.50 です。fio を停止すると、wrqm/s は 0 になります。O_SYNC でダイレクト io を実行しているのに、まだ io マージがあるのはなぜですか? 私を助けてください。
ありがとうございました:-)