jueves, 27 de agosto de 2015

LINUX-cambiar prioridad utilización de I/O para un proceso con utilitario ionice.



AL igual que el comando nice, el utilitario ionice también puede cambiar la prioridad de cualquier proceso que está utilizando bloques de lectura/escritura en el HDD (mejor conocido como I/O)

Para utilizar el comando y entender qué es una clase y una prioridad, revisar el siguiente enlace:
http://www.tutorialspoint.com/unix_commands/ionice.htm

De esta forma, revisando las propiedades de un proceso a través del comando ps, no se puede determinar  la prioridad de I/O
[root@clpcc03 ~]# ps -p 2804 -o ppid,pcpu,pmem,ni,cmd
PPID %CPU %MEM NI CMD
1 0.4 1.8 0 ora_pmon_psva

Para determinar la prioridad de I/O se utiliza el comando ionice.
[root@clpcc03 ~]# ionice 2804
none: prio 0
Para cambiar la prioridad se utiliza los parametro -C "clasificación" que indica el criterio que debe asumir el kernel para entregar recusros de I/O. 
También se utiliza el parámetro -n que indica el nivel de prioirdad dentro de la clasificación. 
[root@clpcc03 ~]# ionice -c 2 -n 7 -p 2804

Ahora al consultar nuevamente por ionice del proceso:
[root@clpcc03 ~]# ionice 2804
best-effort: prio 7

Sin embargo, la prioridad definida como nice no ha cambiado dentro del sistema
[root@clpcc03 ~]# ps -p 2804 -o ppid,pcpu,pmem,ni,cmd
PPID %CPU %MEM NI CMD
1 0.3 1.8 0 ora_pmon_psva
[root@clpcc03 ~]#

Para finalizar, al momento de ejecutar un script, es posible definir ionice y nice, de la siguiente forma:

[root@clpcc03 ~]# /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 /usr/local/bin/script.sh

1 comentario: