Intereting Posts

Как приоритет дискового ввода-вывода связан с приоритетом процесса?

Я запускаю программное обеспечение, которое иногда перегружает диск IO. Мне не нужен быстрый ответ от этого программного обеспечения, мне нужен быстрый ответ от других приложений, поэтому я мог бы установить для него низкий приоритет процесса. Я хочу спросить, как приоритет процесса влияет на приоритет ввода-вывода диска для процесса.

Я пробовал небольшой эксперимент: я установил низкий приоритет (в System Monitor под GNOME) для процесса и проверил приоритет ввода-вывода с помощью ionice .

Результат:

 IO priority = 0 for normal process priority IO priority = 4 for low process priority 

Но будет ли это всегда так работать? Является ли приоритет ввода-вывода всегда уменьшающимся, когда я уменьшаю приоритет процесса?

В Linux по умолчанию приоритет ввода-вывода процесса определяется из его приоритета ЦП в соответствии с формулой

 io_priority = (cpu_nice + 20) / 5 

Приоритет ввода-вывода составляет от 0 до 7, а 0 – наивысший приоритет. Значимость ЦП варьируется от -20 до 19 с -20, являющимся наивысшим приоритетом.

Вы можете использовать команду ionice для изменения приоритета ввода-вывода процесса. Если вы хотите, чтобы этот процесс выполнялся только в том случае, если система не занята иным образом, запустите ее в соответствии с классом «idle», а не с классом «best-effort» по умолчанию:

 ionice -c 3 -p $PID ionice -c 3 mycommand --someoption 

Даже с самым низким приоритетом процесс с интенсивным использованием диска имеет тенденцию замедлять работу системы, если ничего другого, поскольку он загрязняет кеш.

Дополнительную информацию см. На странице руководства пользователя.