Ionice - это стандартная команда linux, которая позволяет установить приоритет io для процесса:
http://linux.die.net/man/1/ionice
Унаследуют ли процессы детей приоритеты от своих родителей? Как проверить приоритет работы запущенного процесса?
Ionice - это стандартная команда linux, которая позволяет установить приоритет io для процесса:
http://linux.die.net/man/1/ionice
Унаследуют ли процессы детей приоритеты от своих родителей? Как проверить приоритет работы запущенного процесса?
Да. Я проверял это. Приоритет ввода-вывода наследуется так же, как и процессор. Это, вероятно, то, что вы хотите. Если это не так, вы можете явно указать приоритет ввода-вывода дочерних процессов с помощью команды ionice.
Со страницы руководства (man ionice
):
# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
Любые разветвленные процессы наследуют класс io и приоритет своего родителя, однако важно помнить, что если вы измените класс io и / или приоритет запущенного процесса, он не изменит класс / приоритет io любые текущие дочерние процессы этого процесса. При этом после настройки класса и / или приоритета запущенного процесса все дочерние процессы, которые разветвляются в будущем, наследуют новый класс и приоритет io.
Да и вот как я это проверял
Создайте два файла foo.sh
# ==> foo.sh <==
echo $$
ionice
и nicechange.sh
# ==> nicechange.sh <==
echo $$
echo -n Before change:
ionice
echo Change to best-effort
ionice -c best-effort -p $$
echo After changed
ionice
echo Subprocess
x=$(bash foo.sh)
echo $x
Затем запустите его:
$ bash nicechange.sh
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4