Los sistemas Linux pueden ejecutar muchos procesos (trabajos) simultáneamente. Incluso si la CPU tiene varios procesadores o núcleos, el número de procesos suele ser muy superior al número de núcleos disponibles. Es tarea del núcleo de Linux distribuir los ciclos de CPU disponibles a los procesos activos.
Usar Nice to Get Priorities Straight
Por defecto, todos los procesos se consideran igualmente urgentes y se les asigna la misma cantidad de tiempo de CPU. Para permitir al usuario cambiar la importancia relativa de los procesos, Linux asocia un parámetro de prioridad a cada trabajo que puede ser configurado o modificado por el usuario. El núcleo de Linux entonces reserva tiempo de CPU para cada proceso basado en su valor relativo de prioridad.
Para ello se utiliza el parámetro nice. Va de menos 20 a más 19 y sólo puede tomar valores enteros. Un valor de menos 20 representa el nivel de prioridad más alto, mientras que 19 representa el más bajo. El hecho de que el nivel de prioridad más alto esté indicado por el número más negativo es un tanto contradictorio. Sin embargo, correr con una prioridad menor se considera «más agradable», ya que permite que otros procesos usen una mayor proporción de tiempo de CPU.
Cómo jugar bien
Usando el comando:
niceinicia un nuevo proceso (trabajo) y le asigna un valor de prioridad (agradable) al mismo tiempo. Para cambiar la prioridad de un proceso que ya se está ejecutando, utilice el comando: nice -12 trabajo grande .
Tenga en cuenta que el guión delante del 12 no representa un signo menos. Tiene la función habitual de marcar una bandera que se pasa como argumento al comando nice.
Para establecer el valor correcto en menos 12, añada otro guión:
nice –12 large-job
Recuerde que los valores agradables más bajos corresponden a una prioridad más alta. Por lo tanto, -12 tiene mayor prioridad que 12. El valor predeterminado de nice es 0. Los usuarios regulares pueden establecer prioridades más bajas (valores agradables positivos) y para utilizar prioridades más altas (valores agradables negativos) se requieren privilegios de administrador.
Puede cambiar la prioridad de un trabajo que ya se está ejecutando utilizando renice. Por ejemplo:
renice 17 -p 1134
Esto cambia el buen valor del trabajo con el ID de proceso 1134 a 17. En este caso, no se utiliza ningún guión para la opción de comando cuando se especifica el valor agradable. El siguiente comando cambia el valor agradable del proceso 1134 a -3:
renice -3 -p 1134
Para imprimir una lista de los procesos actuales, utilice el comando ps .