Группа процессов ионизации?
Есть ли простой способ изменить приоритет ввода / вывода для всей группы процессов, как renice -g
делает? Кажется, что только изменение приоритета ввода / вывода для одного процесса поддерживается ionice
, Если это невозможно, может кто-нибудь указать мне соответствующие вызовы API (я совсем не знаком с API POSIX), чтобы я мог написать утилиту быстрой командной строки для реализации этой функции самостоятельно?
2 ответа
Вы можете сделать скрипт под названием 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 для автоматического добавления новых процессов в существующую групповую инфраструктуру.