Ионные бездействующие игнорируются

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

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

  • дю <big folder>
  • ionice -c 3 du <another big folder>

Если я проверю оба процесса в 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 процесс, и тогда моя система застревает.

Некоторые предложения?

Рекомендации:

2 ответа

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

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

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

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

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

Я понятия не имею о проблеме обмена, хотя.

Другие вопросы по тегам