Я тестировал ionice
командовать какое-то время и idle
(3) режим в большинстве случаев игнорируется.
Мой тест - запустить обе команды одновременно:
<big folder>
<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
процесс, а затем моя система зависает.
Какое-то предложение?
Ссылки:
ionice
работает только при использовании планировщика ядра CFQ. Распределения, кажется, по умолчанию deadline
планировщик.
смотреть на /sys/block/xvdh/queue/scheduler
чтобы увидеть, что вы включили. Он заключен в квадратные скобки.
Я думаю, что это ожидаемое поведение - по крайней мере, если оба процесса имеют долю ввода-вывода около 100%. Должна быть небольшая разница, но 100% - это предел, и если вы уже на 96%, то получение только половины ввода-вывода приводит к 98%. Ничего страшного.
Должна быть заметна серьезная разница в абсолютных значениях передачи. Эта разница также может зависеть от приоритета ЦП.
Приостановка ввода-вывода не означает, что система вообще не пострадала. Если неактивные процессы не потребляют весь доступный ввод-вывод, тогда приоритетный незанятый процесс также получает пропускную способность ввода-вывода. Таким образом, очень часто может случиться так, что неактивное приоритетное приложение требует ввода-вывода и получает следующий слот, но из-за того, что IOP только что выполняется для незанятого prio-процесса, нагрузка увеличивается. Чем меньше операций ввода-вывода вызывает процесс, тем большее влияние на него должен оказывать бездействующий предварительный процесс. Таким образом, это может помочь снизить приоритет ЦП процесса cron (возможно, даже сделав его SCHED_IDLE).
Я понятия не имею о проблеме подкачки.