Cómo establecer la prioridad del proceso de Linux usando comandos Niza y Renice
- 1151
- 114
- Adriana Tórrez
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, CommVer procesos Linux valores agradables
Alternativamente, puede usar utilidades superior o htop para ver los procesos de Linux valores agradables como se muestra.
$ top $ htopVerifique 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 quePRS
oPri
- 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.
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 ApachePrioridad 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 = 18Mira 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.
- Cómo encontrar y matar procesos de ejecución en Linux
- Una guía para Kill, Pkill y Killall comar para terminar un proceso en Linux
- Cómo monitorear el uso del sistema, las interrupciones y la solución de problemas de los servidores Linux
- 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.