Vererben Kinderprozesse ionisierende Prioritäten von ihren Eltern? Wie prüft man die IO-Priorität eines laufenden Prozesses?

15

Ionice ist ein Standard-Linux-Befehl, mit dem Sie die io-Priorität für einen Prozess festlegen können:

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

Vererben Kinderprozesse ionisierende Prioritäten von ihren Eltern? Wie prüft man die Priorität eines laufenden Prozesses?

Peltier
quelle

Antworten:

12

Ja. Ich habe es getestet. Die E / A-Priorität wird genau wie die CPU-Genauigkeit vererbt. Das ist wahrscheinlich was Sie wollen. Ist dies nicht der Fall, können Sie die E / A-Priorität von untergeordneten Prozessen mit dem Befehl ionice explizit angeben.

Ryan C. Thompson
quelle
9

Von der Manpage ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
Alvin Row
quelle
+1 für Sie, da Sie die andere Hälfte der Frage beantwortet haben.
Ryan C. Thompson
7

Alle Prozesse, die gegabelt werden, erben die io-Klasse und -Priorität ihres übergeordneten Elements. Ein wichtiger Aspekt ist jedoch, dass beim Ändern der io-Klasse und / oder -Priorität eines laufenden Prozesses die io-Klasse / -Priorität von nicht geändert wird alle aktuellen untergeordneten Prozesse dieses Prozesses . Das heißt, sobald Sie die Klasse und / oder Priorität eines laufenden Prozesses angepasst haben, erben alle zukünftigen untergeordneten Prozesse die neue io-Klasse und -Priorität.


quelle
1

Ja und so habe ich es getestet

Erstellen Sie zwei Dateien foo.sh

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

und 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

Führen Sie es dann aus:

$ bash nicechange.sh 
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4
HVNSweeting
quelle