Унаследуют ли процессы детей приоритеты от своих родителей? Как вы проверяете приоритет ввода-вывода запущенного процесса?

15

Ionice - это стандартная команда linux, которая позволяет установить приоритет io для процесса:

http://linux.die.net/man/1/ionice

Унаследуют ли процессы детей приоритеты от своих родителей? Как проверить приоритет работы запущенного процесса?

Пельтье
источник

Ответы:

12

Да. Я проверял это. Приоритет ввода-вывода наследуется так же, как и процессор. Это, вероятно, то, что вы хотите. Если это не так, вы можете явно указать приоритет ввода-вывода дочерних процессов с помощью команды ionice.

Райан К. Томпсон
источник
9

Со страницы руководства ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
Элвин Роу
источник
+1 для вас, так как вы ответили на другую половину вопроса.
Райан Томпсон
7

Любые разветвленные процессы наследуют класс io и приоритет своего родителя, однако важно помнить, что если вы измените класс io и / или приоритет запущенного процесса, он не изменит класс / приоритет io любые текущие дочерние процессы этого процесса . При этом после настройки класса и / или приоритета запущенного процесса все дочерние процессы, которые разветвляются в будущем, наследуют новый класс и приоритет io.


источник
1

Да и вот как я это проверял

Создать два файла 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
HVNSweeting
источник