Ионные бездействующие игнорируются
Я тестировал 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).
Я понятия не имею о проблеме обмена, хотя.