Ионис без эффекта
Система 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
ioniced:
real 1m10.230s
user 0m0.250s
sys 0m4.020s
что подразумевает, что ionice не работал вообще. Есть намеки?
2 ответа
Это почти наверняка не работает, потому что вы не используете планировщик ядра CFQ.
смотреть на /sys/block/xvdh/queue/scheduler
чтобы увидеть, что вы используете. Один в скобках [] является активным.
Это кажется deadline
на большинстве систем сейчас, для которых ionice не работает. (Это все, насколько я могу сказать, это ужасно плохо задокументировано).
Поскольку оба процесса запрашивают одни и те же файлы, любой, кто попадет туда вторым, получит их из кэша файловой системы. Так как он на самом деле не движется шпинделей, на него не влияют ionice
,