システムはUbuntu10 LTS 64ビット(2.6.35.31)で、xen 4.0で実行しています。サービスはアクティブではなく、cronは停止しています。スケジューラーは、ディスクのcfqです。
時間find /usr -exec stat {} \; > /dev/null 2>&1
&
与える
real 0m35.760s
user 0m0.270s
sys 0m3.910s
そして
時間ionice -c3 find /usr -exec stat {} \; > /dev/null 2>&1
&
与える
real 0m36.110s
user 0m0.310s
sys 0m4.100s
これはまったく予想どおりですが、両方を同時に実行します。
時間find /usr -exec stat {} \; > /dev/null 2>&1
&時間ionice -c3 find /usr -exec stat {} \; > /dev/null 2>&1
&
イオン化バージョンははるかに遅く、ストレートバージョンは単独で実行するのと同じくらい速いはずです。だが:
まっすぐ:
real 1m10.430s
user 0m0.320s
sys 0m3.940s
イオン化:
real 1m10.230s
user 0m0.250s
sys 0m4.020s
これは、イオニスがまったく機能しなかったことを意味します。ヒントはありますか?
CFQカーネルスケジューラを使用していないため、これはほぼ確実に機能していません。
見る /sys/block/xvdh/queue/scheduler
使用しているものを確認します。 []括弧内のものがアクティブなものです。
現在、ほとんどのシステムではdeadline
のようですが、ioniceは機能しません。 (これは私が知る限り、ひどく文書化されています)。
両方のプロセスが同じファイルを要求しているため、どちらか一方が2番目に取得すると、ファイルシステムキャッシュからファイルが取得されます。実際にはスピンドルを動かしていないので、ionice
の影響を受けません。