Shell Bash en una computadora portátil Ubuntu

Cómo establecer prioridades de proceso con nice y renice en Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

los nice y renice Los comandos le permiten ajustar la forma en que el kernel trata sus procesos ajustando sus prioridades. Lea este tutorial para aprender a usarlos en sistemas operativos Linux y Unix como macOS.

Se trata del proceso

Dentro de su computadora Linux o Unix, muchos procesos se ejecutarán incluso antes de que inicie la aplicación que desea usar. La mayoría de estos procesos son partes vitales del propio Linux o procesos de soporte para su entorno de escritorio gráfico. Están sucediendo muchas cosas detrás de escena. Por supuesto, solo hay una cantidad limitada de recursos del sistema y tiempo de CPU. El kernel de Linux es el controlador de todos estos procesos.

Es el núcleo el que debe decidir qué procesos reciben atención y recursos en este momento y cuáles deben esperar. El kernel hace malabares continuamente con los procesos y las prioridades para asegurarse de que la computadora funcione de la manera más fluida posible y de que todos los procesos se compartan adecuadamente. Algunos procesos reciben un trato preferencial. Son tan importantes para el funcionamiento general de la computadora que sus necesidades tienen que estar antes que, digamos, su navegador.

El hermoso valor

Uno de los criterios utilizados para determinar cómo el kernel trata un proceso es el valor nice. Cada proceso tiene un gran valor. El valor agradable es un número entero entre -19 y 20. Todos los procesos estándar se inician con un valor agradable de cero.

El truco aquí es que cuanto mayor sea el valor agradable, más agradable será su proceso en comparación con otros procesos. En otras palabras, un valor agradable alto le dice al kernel que este proceso está listo para esperar. Un número negativo es lo opuesto a ser amable. Cuanto mayor sea el valor negativo de lo agradable, más egoísta será el proceso. Intenta obtener la mayor cantidad de tiempo de CPU posible, independientemente de otros procesos.

Podemos usar el nice comando para establecer el valor agradable cuando un se inicia el proceso y podemos usar renice para ajustar el buen valor de un proceso en curso.

El hermoso orden

Podemos usar el nice comando para ajustar el valor agradable de un programa cuando lo lanzamos. Esto nos permite aumentar o disminuir la prioridad que el kernel le da al proceso, en comparación con otros procesos.

Suponga que un programador ha escrito un programa llamado ackermann . Esto calcula Funciones de Ackerman. Es un uso intensivo de la CPU y la memoria. El programador puede iniciar el programa con el siguiente comando:

./ackermann

comando ackermann en la ventana de terminal

Podemos usar el top comando para mostrar el programa en ejecución.

top

top corriendo en una terminal

Podemos ver los detalles del ackermann programa en top. El valor correcto es el número en la «columna NI». Fue a cero como era de esperar.

Reiniciemos y esta vez hagámoslo menos exigente. Definiremos un buen valor de 15 para el ackermann programe de la siguiente manera. Escriba agradable, un espacio, -15, otro espacio, luego el nombre del programa que desea ejecutar. En nuestro ejemplo, nuestro programador ficticio usa ./ackermann.

nice -15 ./ackermann

buen comando 15 en la ventana de terminal

Tenga cuidado, el «-15» no es menos de quince. Es quince positivo. Se requiere el «-» para decir nice pasamos un parámetro. Para indicar un número negativo, debe escribir dos caracteres «-«.

Si empezamos ahora top de nuevo podemos ver el cambio en el comportamiento de ackermann.

top

top corriendo en una terminal

Con un buen valor de 15, ackermann no consume la mayor parte del tiempo de CPU. GNOME y Rhythmbox usan más. frenamos ackermann en un rato.

Ahora hagamos lo contrario y demos ackermann un buen valor negativo. Tenga en cuenta el uso de dos caracteres «-«. Para hacer una aplicación más egoísta y menos amigable, debes usar sudo. Cualquiera puede hacer que su aplicación sea más agradable, pero solo los superusuarios pueden hacer que uno sea más egoísta.

sudo nice --10 ./ackermann

Nice -10 comando en la ventana de terminal

Corramos escaleras arriba y veamos qué diferencia hizo.

top

top corriendo en una terminal

Esta vez ackermann tiene un buen valor de -10. Está de nuevo en la primera línea y consume más tiempo de CPU que antes.

El comando renice

los renice El comando nos permite ajustar el valor agradable de un proceso en ejecución. No necesitamos detenerlo y comenzar de nuevo con nice. Podemos establecer un nuevo valor sobre la marcha.

los renice El comando toma el ID de proceso, o PID, del proceso como un parámetro de línea de comando. Podemos extraer el ID del proceso de la columna «PID» en top , o podemos usar ps y grep para encontrarlo por nosotros, de la siguiente manera. Obviamente, escribirás el nombre de tu usuario en lugar de dave y el nombre del proceso que le interesa en lugar de ackermann.

ps -eu dave | grep ackermann

Ahora que tenemos el PID, podemos usarlo con renice. Vamos a poner ackermann volver a un comportamiento más agradable con un buen valor de cinco. Para cambiar el valor agradable de un proceso en ejecución, debe usar sudo. Tenga en cuenta que no hay «-» en el 5 configuración. No lo necesita para números positivos, y solo necesita uno, no dos, para números negativos.

sudo renice -n 5 2339

Obtenemos la confirmación de que renice cambió el hermoso valor. Nos muestra el valor antiguo y el nuevo valor.

El kernel generalmente hace un excelente trabajo al administrar las prioridades y distribuir el tiempo de la CPU y los recursos del sistema. Pero si tiene que ejecutar una tarea larga que requiere un uso intensivo de la CPU y no le importa cuándo termina, hará que su computadora sea un poco más suave si establece un valor más alto para esa tarea. Será más agradable para todos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas