Categorías: Linux

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

Fatmawati Achmad Zaenuri / Shutterstock.com

El nicey renicecomandos que vamos a afinar cómo el kernel trata a sus procesos mediante el ajuste de sus prioridades. Lea este tutorial para aprender a usarlos en Linux y sistemas operativos similares a Unix, como macOS.

Todo es cuestión de proceso

Dentro de su computadora Linux o similar a Unix, habrá muchos procesos en ejecución incluso antes de que inicie la aplicación que desea usar. La mayoría de estos procesos son elementos 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 tantos recursos del sistema y tiempo de CPU para todos. El kernel de Linux es el controlador de todos estos procesos.

Es el núcleo el que tiene que decidir qué procesos reciben atención y recursos en este momento, y cuáles tienen que esperar. El kernel está continuamente haciendo malabarismos con los procesos y las prioridades para garantizar que la computadora funcione de la manera más fluida posible y que todos los procesos reciban la participación adecuada. Algunos procesos reciben un trato preferencial. Son tan importantes para el funcionamiento general de la computadora que sus necesidades deben ser lo primero antes que, digamos, su navegador.

El buen valor

Uno de los criterios utilizados para determinar cómo el kernel trata un proceso es el valor agradable. Cada proceso tiene un buen valor. El valor agradable es un número entero en el rango de -19 a 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, mejor será su proceso para los otros procesos. En otras palabras, un valor agradable alto le dice al kernel que este proceso está feliz de esperar. Un número negativo es lo opuesto a ser amable. Cuanto mayor sea el valor agradable negativo, más egoísta será el proceso. Está tratando de obtener la mayor cantidad de tiempo de CPU posible, sin tener en cuenta los otros procesos.

Podemos usar el nicecomando para establecer  el valor agradable cuando se inicia un proceso y podemos usarlo renicepara ajustar el valor agradable de un proceso en ejecución .

El buen comando

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 relación con los otros procesos.

Supongamos que un programador ha escrito un programa llamado ackermann. Esto calcula las funciones de Ackerman . Consume CPU y memoria. El programador puede iniciar el programa con el siguiente comando:

./ackermann

Podemos usar el topcomando para ver el programa en ejecución.

parte superior

Podemos ver los detalles del  ackermannprograma en top. El buen valor es la cifra en la «columna NI». Se puso a cero como era de esperar.

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

agradable -15 ./ackermann

Tenga cuidado, el «-15» no es quince negativo. Es quince positivo. El «-» es necesario para indicar niceque estamos pasando un parámetro. Para indicar un número negativo debe escribir dos caracteres “-”.

Si ahora comenzamos de topnuevo, podemos ver el cambio en el comportamiento de ackermann.

parte superior

Con un buen valor de 15, ackermannno consume más tiempo de CPU. GNOME y Rhythmbox están usando más. Hemos controlado ackermannun poco.

Ahora hagamos lo contrario y demos ackermannun valor agradable negativo. Tenga en cuenta el uso de dos caracteres «-«. Para hacer una aplicación más egoísta y menos agradable, 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

Corramos arriba y veamos qué diferencia ha hecho.

parte superior

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

El comando renice

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

El renicecomando 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 psy greppara encontrarlo, de la siguiente manera. Obviamente, escribirá el nombre de su 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 renice. Vamos a ackermannvolver 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 parámetro. No necesita uno para números positivos y solo necesita uno, no dos, para números negativos.

sudo renice n 5 2339

Recibimos la confirmación de que reniceha cambiado el valor agradable. Nos muestra el valor antiguo y el nuevo valor.

El kernel generalmente hace un gran trabajo manejando prioridades y distribuyendo tiempo de CPU y recursos del sistema. Pero si tiene que ejecutar una tarea larga que requiere un uso intensivo de la CPU y no le importa cuando concluye, hará que su computadora funcione un poco más suave si establece un valor agradable más alto para esa tarea. Eso será mejor para todos.

responroot

Compartir
Publicado por
responroot
Etiquetas: linux

Entradas recientes

Steamlytics: La nueva herramienta imprescindible para los gamers de Steam

  El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…

1 año hace

Cuándo reemplazar su antigua unidad flash USB

Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…

3 años hace

¿Qué es una pantalla Nano IPS?

LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…

3 años hace

10 formas de jugar con un presupuesto bajo (o nulo)

Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…

3 años hace

¿Demasiadas suscripciones? Aquí está cómo empezar a cortarlos

Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…

3 años hace

Cómo configurar la puerta de enlace predeterminada en Linux

fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…

3 años hace