¿Los procesos infantiles heredan las prioridades de ionice de sus padres? ¿Cómo se verifica la prioridad IO de un proceso en ejecución?

15

Ionice es un comando estándar de Linux que permite establecer la prioridad io para un proceso:

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

¿Los procesos infantiles heredan las prioridades de ionice de sus padres? ¿Cómo se verifica la prioridad io de un proceso en ejecución?

Peltier
fuente

Respuestas:

12

Si. Lo probé La prioridad de E / S se hereda al igual que la simpatía de CPU Esto es probablemente lo que quieres. Si no es así, puede especificar explícitamente la prioridad IO de los procesos secundarios con el comando ionice.

Ryan C. Thompson
fuente
9

Desde la página del manual ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
Alvin Row
fuente
+1 para ti ya que respondiste la otra mitad de la pregunta.
Ryan C. Thompson el
7

Todos los procesos que se bifurcan heredan la clase io y la prioridad de su padre, sin embargo, un hecho importante a tener en cuenta es que si altera la clase io y / o la prioridad de un proceso en ejecución , no cambia la clase / prioridad io de cualquier proceso hijo actual de ese proceso . Dicho esto, una vez que haya ajustado la clase y / o la prioridad de un proceso en ejecución, los procesos secundarios que se bifurcan en adelante heredarán la nueva clase y prioridad io.


fuente
1

Sí y así es como lo probé

Crea dos archivos foo.sh

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

y 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

Luego, ejecútalo:

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