Czy procesy dzieci dziedziczą priorytety jonizacji po rodzicach? Jak sprawdzasz priorytet IO uruchomionego procesu?

15

Ionice to standardowe polecenie linux, które pozwala ustawić priorytet io dla procesu:

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

Czy procesy dzieci dziedziczą priorytety jonizacji po rodzicach? Jak sprawdzasz priorytet io uruchomionego procesu?

Peltier
źródło

Odpowiedzi:

12

Tak. Przetestowałem to. Priorytet we / wy jest dziedziczony tak samo jak licencja procesora. To jest prawdopodobnie to, czego chcesz. Jeśli nie jest, możesz jawnie określić priorytet IO procesów potomnych za pomocą polecenia ionice.

Ryan C. Thompson
źródło
9

Ze strony man ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
Alvin Row
źródło
+1 dla ciebie, ponieważ odpowiedziałeś na drugą połowę pytania.
Ryan C. Thompson,
7

Wszelkie rozwidlone procesy dziedziczą klasę io i priorytet ich rodzica, jednak należy pamiętać, że zmiana klasy io i / lub priorytetu uruchomionego procesu nie zmienia klasy io / priorytetu wszelkie bieżące procesy potomne tego procesu . To powiedziawszy, po dostosowaniu klasy i / lub priorytetu uruchomionego procesu, wszelkie procesy potomne rozwidlone w przyszłości odziedziczą nową klasę io priorytet.


źródło
1

Tak i tak to przetestowałem

Utwórz dwa pliki foo.sh

# ==> foo.sh <==
echo $$
ionice

i 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

Następnie uruchom:

$ bash nicechange.sh 
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4
HVNSweeting
źródło