GNU/Linux >> Tutoriales Linux >  >> Linux

Comandos de Linux:cómo manipular la prioridad del proceso

La gestión de procesos en Linux es un concepto fundamental con el que todo buen administrador de sistemas debería estar familiarizado. La mayoría del trabajo que realiza con estos procesos consiste en tareas básicas y repetitivas, como iniciar y detener procesos, buscarlos, eliminarlos, etc.

En algunos casos menos frecuentes, es posible que deba reordenar sus procesos debido a la asignación de recursos del sistema. Cuando surgen estas situaciones, muchos de nosotros recurrimos a nuestro motor de búsqueda favorito para descubrir la forma más eficiente de hacerlo. Ahora que el algoritmo de búsqueda lo trajo aquí para Habilitar Sysadmin, proporcionemos las respuestas que está buscando.

Desglosaré cómo se determina la prioridad y luego te mostraré cómo manipular esos valores a continuación.

Prioridad y relatividad del proceso

Los sistemas Linux rutinariamente ejecutan más procesos que unidades de procesamiento hay en la computadora. Debido a esto, el programador de procesos saltará rápidamente entre procesos en un solo núcleo, creando así la ilusión de que estamos ejecutando múltiples procesos simultáneos.

En realidad, a cada proceso se le asigna una política de programación de procesos. Dentro de esta política, se utiliza una escala de 40 puntos para medir lo agradable niveles de un proceso. El nivel agradable es una unidad de medida que describe la prioridad relativa del proceso. Al analizar los niveles de amabilidad, tenga en cuenta que la escala es de -20 (prioridad más alta) a 19 (prioridad más baja) y que un proceso hereda su nivel de amabilidad del padre (la mayoría de las veces 0).

[ También puede disfrutar: Conceptos básicos de los comandos de Linux:7 comandos para la gestión de procesos  ]

Ahora, si un proceso tiene un nivel de amabilidad más bajo (por debajo de cero), entonces será menos probable que renuncie a su uso de CPU (no muy bueno, ¿Lo es?). Por otro lado, es más probable que un proceso con un alto valor de amabilidad (superior a cero) renuncie al uso de la CPU.

Una manera fácil de recordar esto es que si alguien (o un proceso) es realmente agradable, está más inclinado a compartirlo con los demás. Si no son muy amables, tienden a ser más protectores con lo que les pertenece (recursos de CPU, en este caso).

Además, si no hay escasez de recursos, incluso los procesos con altos niveles de amabilidad utilizarán todo el tiempo de CPU disponible. El único momento en que un proceso rendirá sus recursos es cuando hay escasez de ancho de banda.

Informe de prioridad

Ahora que tenemos todo el contexto que rodea la prioridad del proceso, veamos algunas de las formas de ver esta información en la terminal.

La forma más rápida y básica de ver información agradable es usar el top dominio. Muestra esta información de forma predeterminada en la cuarta columna (de izquierda a derecha) y, por lo tanto, no requiere ninguna opción o indicador adicional.

El otro método, un poco más complicado, es usar el ps Comando con una generosa ayuda de opciones de formato. El siguiente comando mostrará los procesos con sus ID de proceso, nombre, nivel de amabilidad y clase de programación (ordenados de forma descendente):

[tcarrigan@localhost ~]$ ps axo pid,comm,nice,cls --sort=-nice

Ahora en tiempo real:

Manipular la amabilidad existente

Ahora sabemos cómo ver la amabilidad de un proceso existente, pero ¿qué sucede si ese nivel agradable no se ajusta a nuestras necesidades? ¿Cómo podemos cambiar esos valores para aprovechar al máximo nuestro sistema? Bueno, si tiene un proceso en particular que consume recursos que necesita en otro lugar, puede reducir el nivel agradable de ese proceso específico. Para hacer esto, usaremos el renice comando.

Nota :solo el usuario raíz puede reducir un nivel de amabilidad (aumentar la prioridad). Los usuarios sin privilegios pueden aumentar los niveles agradables pero no pueden disminuirlos sin permisos de root.

Echa un vistazo a este sleep 500 proceso. Tiene un PID de 23990 y un nivel agradable predeterminado de 0.

[tcarrigan@localhost ~]$ ps -o pid,comm,nice 23990
    PID COMMAND          NI
  23990 sleep             0

Si quisiera hacer que ese proceso fuera menos prioritario, usaría el siguiente renice comando:

Para hacer que el proceso sea más importante (bajar el nivel agradable), usaría la misma sintaxis de comando que un usuario privilegiado.

[ Hoja de referencia gratuita:glosario de Kubernetes ] 

Una última cosa

Bien, antes de terminar, hay un truco más que quería incluir aquí. Si va a iniciar un proceso que generalmente tiene un nivel agradable predeterminado que no es deseable, puede configurar ese parámetro a medida que genera el proceso. Usaremos el sleep comando de nuevo. Sin embargo, esta vez lo crearemos con el nice comando (que por defecto el proceso es agradable nivel 10).

Puede establecer un nivel agradable específico usando el mismo comando con la siguiente sintaxis:

[tcarrigan@localhost ~]$ nice -n 19 sleep 500 &

El comando anterior establece el fondo sleep 500 a un buen nivel de 19.

Estos comandos fueron muy divertidos de aprender y presumir. En el futuro, cuando tenga problemas con los recursos del sistema o procesos hambrientos, puedo modificar los recursos asignados a ellos.


Linux
  1. Cómo matar un proceso zombie en Linux

  2. 8 comandos de Linux para una gestión de procesos eficaz

  3. ¿Cómo matar un proceso en Linux usando el comando?

  4. Cómo cambiar la prioridad del proceso usando los ejemplos de Linux Nice y Renice

  5. ¿Cómo detener un proceso de pantalla en Linux?

Cómo matar un proceso en Linux

Cómo ejecutar comandos de Linux en segundo plano

Cómo matar procesos Zombie en Linux

Cómo MATAR un proceso en Linux

Cómo usar los comandos FTP de Linux

Comandos para la Gestión de Procesos en Linux