web-dev-qa-db-ja.com

効果のないイオニス

システムは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

これは、イオニスがまったく機能しなかったことを意味します。ヒントはありますか?

3
tim

CFQカーネルスケジューラを使用していないため、これはほぼ確実に機能していません。

見る /sys/block/xvdh/queue/scheduler使用しているものを確認します。 []括弧内のものがアクティブなものです。

現在、ほとんどのシステムではdeadlineのようですが、ioniceは機能しません。 (これは私が知る限り、ひどく文書化されています)。

3
frabcus

両方のプロセスが同じファイルを要求しているため、どちらか一方が2番目に取得すると、ファイルシステムキャッシュからファイルが取得されます。実際にはスピンドルを動かしていないので、ioniceの影響を受けません。

2
Ladadadada