Есть ли простой способ изменить приоритет ввода-вывода для целой группы процессов способом renice -g
делает? Похоже, что изменение приоритета ввода-вывода только одного процесса поддерживается ionice
. Если это невозможно, может ли кто-нибудь указать мне на соответствующие вызовы API (я совсем не знаком с POSIX api), чтобы я мог написать быструю утилиту командной строки для реализации этой функции самостоятельно?
Вы можете создать сценарий под названием gionice, например:
#!/bin/sh
ps -s $1 -o pid | xargs ionice -c 2 -n 0 -p
Затем вы можете назвать это так, например, для идентификатора группы процессов 3266:
./gionice 3266
«ps -s PID -o pid» выводит построчные идентификаторы процессов, лидером группы которых является PID. Затем для каждой строки xargs добавляет эту строку после «ionice -c 2 -n 0 -p» и вызывает полученную команду.
Надеюсь, это поможет.
Вы смотрели cgroups и модуль blkio?
http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
Вы можете использовать его для ограничения ввода-вывода с гораздо большим контролем, чем только ionice. Вы также можете использовать демон cgrulesengd для автоматического добавления новых процессов в существующую инфраструктуру группы.