I processi dei bambini ereditano le priorità di ionice dai loro genitori? Come si controlla la priorità di I / O di un processo in esecuzione?


15

Ionice è un comando linux standard che consente di impostare la priorità io per un processo:

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

I processi dei bambini ereditano le priorità di ionice dai loro genitori? Come si controlla la priorità io di un processo in esecuzione?

Risposte:


12

Sì. L'ho provato. La priorità di I / O è ereditata proprio come la precisione della CPU. Questo è probabilmente quello che vuoi. In caso contrario, è possibile specificare esplicitamente la priorità IO dei processi figlio con il comando ionice.


9

Dalla pagina man ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.

+1 per te da quando hai risposto all'altra metà della domanda.
Ryan C. Thompson,

7

Qualsiasi processo biforcato eredita la classe io e la priorità del proprio genitore, tuttavia un fatto importante da tenere presente è che se si modifica la classe io e / o la priorità di un processo in esecuzione non cambia la classe / priorità io di qualsiasi processo figlio corrente di tale processo . Detto questo, una volta regolata la classe e / o la priorità di un processo in esecuzione, tutti i processi figlio che vengono biforcati in avanti erediteranno la nuova classe io e la priorità.


1

Sì, è così che l'ho provato

Crea due file foo.sh

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

e 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

Quindi eseguilo:

$ bash nicechange.sh 
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.