Назад | Перейти на главную страницу

ionice без эффекта

Система Ubuntu 10 LTS 64bit (2.6.35.31), я работаю на xen 4.0, службы не активны, cron остановлен, планировщик cfq для диска / usr монтируется из:

время 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

что означает, что ionice вообще не работал. Есть подсказки?

Это почти наверняка не работает, потому что вы не используете планировщик ядра CFQ.

смотреть на /sys/block/xvdh/queue/scheduler чтобы увидеть, что вы используете. В скобках [] активен.

Это кажется deadline на большинстве систем сейчас, для которых ionice не работает. (Это все, насколько я могу судить, ужасно плохо задокументировано).

Поскольку оба процесса запрашивают одни и те же файлы, тот, кто получит второй, получит их из кеша файловой системы. Поскольку на самом деле шпиндели не движутся, на него не влияют ionice.