Comando nice en Linux: Cómo Modificar la Prioridad de Procesos
El comando nice en Linux ajusta el tiempo disponible de CPU de un proceso para mayor o menor prioridad.
En inglés la palabra "nice" significa "amable". Si el ajuste de prioridad para un proceso es un número positivo, significa que está siendo más amable con los otros programas al disminuir su prioridad.
Si el ajuste es un número negativo, significa que el programa está siendo menos amable, aumentando su prioridad de ejecución y dejando menos tiempo de CPU para los otros programas.
El ajuste de prioridad posible va del –20 (más prioridad / menos amable) hasta el 19 (más amable, menos prioridad).
Si no se pasa ningún valor de ajuste, el comando nice ajustará la prioridad a +10, lo que disminuye el tiempo de ejecución del proceso.
Por defecto todos los programas inician con prioridad cero. Solo el administrador root puede definir prioridades negativas (aumento de porción de CPU).
En este ejemplo el comando updatedb tiene menos prioridad de ejecución:
$ nice updatedb &
En este ejemplo el comando hoja_pago se ejecutará con mayor prioridad.
$ nice –n –10 folha_pagamento
Para verificar la prioridad de los procesos en ejecución, se puede usar el comando ps. La columna NI muestra la prioridad:
$ ps -eo pid,ni,comm PID NI COMMAND 1 0 systemd 2 0 kthreadd 4 -20 kworker/0:0H 6 -20 mm_percpu_wq ( ... )30018 0 sshd30019 0 bash
Algunos procesos del sistema tienen naturalmente prioridad máxima (-20).
El comando top también se puede usar para ver la prioridad de los procesos, en la columna NI:
Figura 54 - Top con columna NI resaltada |
Comando renice en Linux
El comando renice ajusta la prioridad de ejecución de procesos en ejecución.
Por defecto, el comando renice recibe como parámetro el PID de un proceso determinado. El ajuste de prioridad es un número entero del –20 (mayor prioridad) hasta el +19 (ejecutar cualquier cosa antes de este proceso).
Las opciones más usuales son:
- -p: Recibe un PID para alterar su prioridad.
- -u: Recibe un nombre de usuario para alterar la prioridad de todos los procesos de este usuario en ejecución.
- -g: Recibe el nombre de un grupo para alterar la prioridad de todos los procesos pertenecientes a este grupo.
En este ejemplo, el proceso con número PID 987, PID 32 y todos los procesos de los usuarios daemon y root van a tener mayor prioridad.
# renice -1 987 -u daemon root -p 32
Los usuarios comunes solo pueden alterar la prioridad de los procesos de los que son dueños, y solo para disminuir la prioridad (del -20 hasta +19). Una vez que el usuario común disminuye la prioridad, normalmente no puede volver a la prioridad anterior.
Solo el usuario root puede alterar la prioridad de cualquier proceso, aumentándola o disminuyéndola.
En este ejemplo el programa con el PID 30018 pasó de prioridad 0 a +2:
$ renice +2 3001830018 (process ID) com prioridade antiga 0, prioridade nova 2
Si un usuario común intenta aumentar la prioridad, no lo logra:
$ renice +1 30018renice: falha ao definir prioridade pra 30018 (process ID): Permission denied
Solo root puede aumentar la prioridad. En este ejemplo el comando sudo ejecuta renice como root:
$ sudo renice 0 3001830018 (process ID) com prioridade antiga 2, prioridade nova 0
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.
Figura 54 - Top con columna NI resaltada