Cómo establecer la prioridad del proceso de Linux usando comandos Niza y Renice

Cómo establecer la prioridad del proceso de Linux usando comandos Niza y Renice

En este artículo, explicaremos brevemente el planificador de núcleo (también conocido como el programador de procesos), y proceso prioritario, que son temas más allá del alcance de esta guía. Luego nos sumergiremos en un poco de administración de procesos de Linux: consulte cómo ejecutar un programa o comando con prioridad modificada y también cambiar la prioridad de ejecutar procesos de Linux.

Leer también: Cómo monitorear los procesos de Linux y establecer límites de proceso por usuario

Comprender el planificador del núcleo de Linux

Un planificador de núcleo es una unidad del núcleo que determina el proceso más adecuado de todos los procesos ejecutables para ejecutar a continuación; Asigna el tiempo del procesador entre los procesos ejecutables en un sistema. Un proceso ejecutable es uno que está esperando solo el tiempo de la CPU, está listo para ser ejecutado.

El planificador forma el núcleo de la multitarea en Linux, utilizando un algoritmo de programación basado en prioridad para elegir entre los procesos ejecutables en el sistema. Clasifica los procesos en función de los más merecedores y de la necesidad de tiempo de CPU.

Comprensión de la prioridad del proceso y buen valor

El kernel almacena una gran cantidad de información sobre procesos, incluida la prioridad del proceso, que es simplemente la prioridad de programación adjunta a un proceso. Los procesos con una prioridad más alta se ejecutarán antes de aquellos con una prioridad más baja, mientras que los procesos con la misma prioridad se programan uno después del siguiente, repetidamente.

Hay un total de 140 Prioridades y dos rangos de prioridad distintos implementados en Linux. El primero es un buen valor (amabilidad) que varía desde -20 (valor de prioridad más alto) a 19 (valor de prioridad más bajo) y el valor predeterminado es 0, Esto es lo que descubriremos en esta guía. El otro es la prioridad en tiempo real, que varía desde 1 a 99 Por defecto, entonces 100 a 139 están destinados al espacio de usuario.

Una característica importante de Linux es la programación dinámica basada en la prioridad, que permite cambiar el buen valor de los procesos (aumentados o disminuidos) dependiendo de sus necesidades, como veremos más adelante.

Cómo verificar un buen valor de los procesos de Linux

Para ver los buenos valores de los procesos, podemos usar utilidades como PS, Top o HTOP.

Para ver los procesos de buen valor con el comando PS en formato definido por el usuario (aquí el NI La columna muestra la amabilidad de los procesos).

$ PS -EO PID, PPID, NI, Comm 
Ver procesos Linux valores agradables

Alternativamente, puede usar utilidades superior o htop para ver los procesos de Linux valores agradables como se muestra.

$ top $ htop 
Verifique los valores de Linux Process Nice usando el comando superior Verifique los valores de Linux Process Nice usando el comando HTOP

Diferencia entre PR o PRI y NI

Desde el arriba y htop salidas anteriores, notará que se llama una columna llamada PRS y Pri receptivamente que muestra la prioridad de un proceso.

Esto, por lo tanto, significa que:

  • NI - es el buen valor, que es un concepto de espacio de usuario, mientras que
  • PRS o Pri - es la prioridad real del proceso, como lo ve el kernel de Linux.
Cómo calcular los valores de PR o PRI
Número total de prioridades = 140 Rango de prioridad en tiempo real (PR o PRI): 0 a 99 Rango de prioridad del espacio del usuario: 100 a 139 

Nice Value Range (NI): -20 a 19

PR = 20 + Ni PR = 20 + (-20 a + 19) PR = 20 + -20 a 20 + 19 PR = 0 a 39 que es igual que 100 a 139. 

Pero si ves un RT En lugar de un número como se muestra en la captura de pantalla a continuación, básicamente significa que el proceso se ejecuta bajo prioridad de programación en tiempo real.

Proceso de RT de Linux

Cómo ejecutar un comando con un valor agradable dado en Linux

Aquí, veremos cómo priorizar el uso de la CPU de un programa o comando. Si tiene un programa o tarea muy intensivo en CPU, pero también comprende que puede llevar mucho tiempo completarlo, puede establecer una prioridad alta o favorable utilizando el Bonita orden.

La sintaxis es la siguiente:

$ NICE -N ONDENCIÓN-VALOR [comando args] o $ nice -niceness-value [comando args] #Es confuso para valores negativos o $ nice --adjustment = amabilidad-valor [comando args] 

Importante:

  • Si no se proporciona ningún valor, Niza establece una prioridad de 10 por defecto.
  • Un comando o programa se ejecuta sin buenos valores predeterminados a una prioridad de cero.
  • Solo la raíz puede ejecutar un comando o programa con mayor o alta prioridad.
  • Los usuarios normales solo pueden ejecutar un comando o programa con baja prioridad.

Por ejemplo, en lugar de iniciar un programa o comando con la prioridad predeterminada, puede iniciarlo con una prioridad específica usando el siguiente comando agradable.

$ sudo nice -n 5 tar -czf respaldo.alquitrán.GZ ./Documentos/* o $ sudo nice --adjustment = 5 Tar -czf Copia.alquitrán.GZ ./Documentos/* 

También puede usar el tercer método que es un poco confuso, especialmente para los valores de bondad negativa.

$ sudo nice -5 tar -czf copia de seguridad.alquitrán.GZ ./Documentos/* 

Cambiar la prioridad de programación de un proceso en Linux

Como mencionamos antes, Linux permite una programación dinámica basada en prioridades. Por lo tanto, si un programa ya se está ejecutando, puede cambiar su prioridad con el Comando Renice ene sta forma:

$ RENICE -N -12 -P 1055 $ RENICE -N -2 -U Apache 
Prioridad del proceso de cambio

De la muestra arriba Salida a continuación, la amabilidad del equipo de equipo+ con pid 1055 es ahora -12 y para todos los procesos propiedad del usuario Apache es -2.

Todavía usando esta salida, puede ver la fórmula PR = 20 + Ni stands,

PR para TS3Server = 20 + -12 = 8 PR para procesos Apache = 20 + -2 = 18 
Mira procesos buenos valores

Cualquier cambio que realice con Comando Renice a los procesos de un usuario Los valores agradables solo son aplicables hasta que el próximo reinicio. Para establecer valores predeterminados permanentes, lea la siguiente sección.

Cómo establecer un valor agradable predeterminado de los procesos de un usuario específicos

Puede establecer el valor agradable predeterminado de un usuario o grupo en particular en el /etc/seguridad/límites.confusión archivo. Su función principal es definir los límites de recursos para los usuarios iniciados a través de PAM.

La sintaxis para definir un límite para un usuario es el siguiente (y los valores posibles de las diversas columnas se explican en el archivo):

#    

Ahora use la sintaxis a continuación donde dura, significa hacer cumplir los enlaces duros y los medios suaves, hacer cumplir los límites suaves.

  prioridad  

Alternativamente, cree un archivo en /etc/seguridad/límites.d/ que anula la configuración en el archivo principal anterior, y estos archivos se leen en orden alfabético.

Comience creando el archivo /etc/seguridad/límites.D/Tecmint-Priority.confusión para el usuario tecmenta:

# vi/etc/seguridad/límites.D/Tecmint-Priority.confusión 

Luego agregue esta configuración en él:

Tecmint Hard Priority 10 

Guarde y cierre el archivo. De ahora en adelante, cualquier proceso propiedad de tecmenta tendrá un buen valor de 10 y relaciones públicas de 30.

Para obtener más información, lea las páginas del hombre de lindo y re bueno:

$ hombre agradable $ hombre Renice 

También le gustaría leer estos siguientes artículos sobre la gestión de procesos de Linux.

  1. Cómo encontrar y matar procesos de ejecución en Linux
  2. Una guía para Kill, Pkill y Killall comar para terminar un proceso en Linux
  3. Cómo monitorear el uso del sistema, las interrupciones y la solución de problemas de los servidores Linux
  4. CPUTOOL - Límite y controle la utilización de CPU de cualquier proceso en Linux

En este artículo, explicamos brevemente el planificador del núcleo, la prioridad del proceso, observamos cómo ejecutar un programa o comando con prioridad modificada y también cambiamos la prioridad de los procesos activos de Linux. Puede compartir cualquier pensamiento sobre este tema a través del formulario de comentarios a continuación.