Cómo establecer prioridades de proceso con nice y renice en Linux
Fatmawati Achmad Zaenuri / Shutterstock.com
El nice
y renice
Los comandos le permiten ajustar cómo el kernel trata sus procesos ajustando 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. Suceden 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 kernel el que tiene que decidir qué procesos reciben atención y recursos en este momento, y cuáles tienen que esperar. El kernel hace malabarismos continuamente 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 tienen que 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 el otro Procesos. En otras palabras, un valor alto y agradable 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 el proceso es. Está tratando de obtener la mayor cantidad de tiempo de CPU posible, sin tener en cuenta los otros procesos.
Anuncio publicitarioPodemos usar el nice
comando para colocar el buen valor cuando un se inicia el proceso y podemos usar renice
a ajustar el buen valor 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 Funciones de Ackerman . Es un uso intensivo de la CPU y la memoria. El programador puede iniciar el programa con el siguiente comando:
Podemos usar el top
comando para ver el programa en ejecución.
Podemos ver los detalles del ackermann
programa 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 ackermann
programe 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
.
Anuncio publicitario
Tenga cuidado, el -15 no es quince negativo. Es quince positivo. Se requiere - para decirle a nice
estamos pasando un parámetro. Para indicar un número negativo debe escribir dos caracteres.
Si ahora comenzamos top
nuevamente, podemos ver el cambio en el comportamiento de ackermann
.
Con un buen valor de 15, ackermann
no consume la mayor parte del tiempo de CPU. GNOME y Rhythmbox están usando más. Hemos frenado ackermann
en un poco.
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 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.
Corramos arriba y veamos qué diferencia ha hecho.
|_+_|
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 renice
El comando 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 renice
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
.
Ahora que tenemos el PID, podemos usarlo con renice
. Vamos a configurar ackermann
de vuelta 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.
Obtenemos la confirmación de que renice
ha cambiado el buen valor. Nos muestra el valor antiguo y el nuevo valor.
El kernel generalmente hace un gran trabajo al manejar 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 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.
RELACIONADO: Las mejores computadoras portátiles Linux para desarrolladores y entusiastas
LEER SIGUIENTE- & rsaquo; Cómo usar el comando superior de Linux (y comprender su resultado)
- & rsaquo; 37 comandos importantes de Linux que debe conocer
- & rsaquo; Cyber Monday 2021: las mejores ofertas de Apple
- & rsaquo; Cómo encontrar su Spotify Wrapped 2021
- & rsaquo; 5 sitios web que todo usuario de Linux debería marcar
- & rsaquo; Funciones frente a fórmulas en Microsoft Excel: ¿Cuál es la diferencia?
- & rsaquo; The Computer Folder Is 40: Cómo Xerox Star creó el escritorio
- & rsaquo; Cyber Monday 2021: las mejores ofertas tecnológicas
Dave McKay usó computadoras por primera vez cuando la cinta de papel perforada estaba de moda, y ha estado programando desde entonces. Después de más de 30 años en la industria de las tecnologías de la información, ahora es un periodista de tecnología a tiempo completo. Durante su carrera, ha trabajado como programador autónomo, gerente de un equipo de desarrollo de software internacional, gerente de proyectos de servicios de TI y, más recientemente, como oficial de protección de datos. Su escrito ha sido publicado por howtogeek.com, cloudsavvyit.com, itenterpriser.com y opensource.com. Dave es un evangelista de Linux y un defensor del código abierto.
Leer biografía completa