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

ionice idle игнорируется

Я тестировал ionice командовать какое-то время и idle (3) режим в большинстве случаев игнорируется.

Мой тест - запустить обе команды одновременно:

Если я проверю оба процесса в iotop Я не вижу разницы в проценте использования io для каждого процесса.

Чтобы предоставить больше информации о планировщике CFQ, я использую ядро ​​Linux 3.5.0.

Я начал делать этот тест, потому что экспериментирую с задержкой системы каждый раз, когда выполняю ежедневную работу cron. updatedb.mlocate выполняется на моей машине с Ubuntu 12.10.

Если вы проверите /etc/cron.daily/mlocate вы понимаете, что команда выполняется следующим образом:

/usr/bin/ionice -c3 /usr/bin/updatedb.mlocate

Кроме того, забавно то, что всякий раз, когда моя система по какой-то причине начинает использовать память подкачки, updatedb.mlocate io процесс запланирован быстрее, чем kswapd0 процесс, а затем моя система зависает.

Какое-то предложение?

Ссылки:

ionice работает только при использовании планировщика ядра CFQ. Распределения, кажется, по умолчанию deadline планировщик.

смотреть на /sys/block/xvdh/queue/scheduler чтобы увидеть, что вы включили. Он заключен в квадратные скобки.

Я думаю, что это ожидаемое поведение - по крайней мере, если оба процесса имеют долю ввода-вывода около 100%. Должна быть небольшая разница, но 100% - это предел, и если вы уже на 96%, то получение только половины ввода-вывода приводит к 98%. Ничего страшного.

Должна быть заметна серьезная разница в абсолютных значениях передачи. Эта разница также может зависеть от приоритета ЦП.

Приостановка ввода-вывода не означает, что система вообще не пострадала. Если неактивные процессы не потребляют весь доступный ввод-вывод, тогда приоритетный незанятый процесс также получает пропускную способность ввода-вывода. Таким образом, очень часто может случиться так, что неактивное приоритетное приложение требует ввода-вывода и получает следующий слот, но из-за того, что IOP только что выполняется для незанятого prio-процесса, нагрузка увеличивается. Чем меньше операций ввода-вывода вызывает процесс, тем большее влияние на него должен оказывать бездействующий предварительный процесс. Таким образом, это может помочь снизить приоритет ЦП процесса cron (возможно, даже сделав его SCHED_IDLE).

Я понятия не имею о проблеме подкачки.