Система 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
.