Obtenga y configure el recuento máximo de subprocesos en Linux

Obtenga y configure el recuento máximo de subprocesos en Linux
"El término" proceso "se refiere a un programa actualmente en ejecución, mientras que" hilo "se refiere a un proceso liviano. Cuando se ejecutan múltiples hilos dentro de un programa compartiendo la misma memoria, se llama múltiples. En un proceso múltiple, puede ejecutar múltiples hilos simultáneamente porque el propósito es aumentar el rendimiento.

Hay un límite para el número de hilos en Linux para un rendimiento efectivo. La configuración del parámetro del núcleo Threads-Max asegura que el número de hilos por proceso permanezca en ese límite o debajo de él. Si también desea saber cómo establecer el recuento máximo de subprocesos, lea nuestra guía. En esta guía, explicaremos cómo obtener y establecer el recuento de subprocesos máximos en Linux."

Obtenga y configure el recuento máximo de subprocesos en Linux

Dividamos esta sección en dos partes; El primero es obtener el recuento de subprocesos, y el otro es establecer el recuento de subprocesos máximos.

Obtener un recuento de hilos máximos

Puede controlar el número máximo de hilos utilizando el Parámetro del núcleo de hilo-max. "File/Proc/Sys/Kernel/Threads-Max" define este parámetro.

Usando el comando "CAT", puede ver este archivo.

Cat/Proc/Sys/Kernel/Threads-Max

Aquí, la salida 45444 muestra los hilos máximos 45444 que el núcleo puede ejecutar.

También puede buscar el valor de hilos-max con el comando "sysctl".

sudo sysctl -a | GREP Threads-Max

Además, "VM.max_map_count " y "núcleo.pid_max"Especifique dos límites adicionales. Estos límites también evitan la creación de nuevos hilos durante la alta carga.

Especifica el número máximo en el que los PID se envolverán.

Cat/Proc/Sys/Kernel/Pid_Max

Aquí está el valor máximo del núcleo.El valor pid_max es 4194304. Significa que el núcleo puede ejecutar un máximo de 4194304 procesos simultáneamente.

Un proceso solo puede tener un cierto número de áreas de memoria virtual (VMA) bajo el "Max_map_count" parámetro.

Cat/Proc/Sys/VM/Max_Map_Count

Las regiones mapeadas de memoria de un proceso se expresan en la salida anterior.

Un hilo y un proceso funcionan de manera similar en el núcleo de Linux. Por lo tanto, el valor que limita el número de procesos también limita indirectamente el número de hilos. Por esta razón, kernel.pid_max debe ser mayor que el número total de procesos y hilos juntos.

Muchos hilos consumen más memoria para trabajar en el servidor. "VM.max_map_count " limita el número de hilos y la memoria virtual para aquellos que necesitan esta memoria para establecer su pila privada.

Otro límite en los sistemas systemd es el "Pids CGroup.Max " Parámetro, que predeterminado es 12,288. A veces, este límite de recurso predeterminado puede ser demasiado restrictivo o no suficiente.

Alternativamente, puede ser útil realizar ajustes específicos en algunas de las configuraciones de TaskSMax de Systemd. El "UserTasksmax" El parámetro anula el límite predeterminado en la sección [Iniciar sesión] de/etc/systemd/logind.confusión.

GREP -I "^USERTASKSMAX"/ETC/SYSTEMD/LOGIND.confusión

Así como Systemd hace cumplir los límites de subprocesos para los programas que se ejecutan desde el shell de inicio de sesión, hace lo mismo.

Establecer el recuento máximo de subprocesos

Hasta ahora, hemos analizado el recuento máximo de subprocesos de diferentes parámetros y ahora veremos cómo establecer estos hilos máximos. Hay varias opciones disponibles para establecer el número máximo de subprocesos por proceso. El número de subproceso se establece aquí para un proceso específico.

Usando el siguiente comando, puede establecer temporalmente el parámetro de kernel de hilos-max en tiempo de ejecución.

sudo/bin/su -c "echo 150000>/proc/sys/kernel/threads -max"

Además, puede configurar el parámetro de núcleo de hilos-max permanentemente agregando kernel.Threads-max = a la /etc /sysctl.archivo conf.

sudo /bin /su -c "sysctl -w kernel.Threads-max = 170000 >> /etc /sysctl.conf "

Ahora establecemos el parámetro PID_MAX en 200000. Esto significa que el núcleo puede ejecutar hasta 200,000 procesos simultáneamente.

sudo/bin/su -c "echo 200000>/proc/sys/kernel/pid_max"

También especifica el número máximo de VMA o áreas de memoria virtual que un proceso puede tener con el parámetro "max_map_count".

sudo/bin/su -c "echo 600000>/proc/sys/vm/max_map_count"

Para todos los usuarios, "UserTaskSmax" establece el límite de subproceso y especifica la configuración de TaskSMAX en los sistemas Systemd.

sed -i "s/^usertasksmax/#usertasksmax/"/etc/systemd/system.confusión
echo "userTasksMax = 60000" >>/etc/systemd/sistema.confusión
GREP -I "USERTASKSMAX/ETC/SYSTEMD/LOGIND.confusión

Los parámetros del sistema también limitan el número de hilos por proceso, posiblemente antes de la memoria y el sistema operativo se convierte en factores limitantes. Aumentar el número de hilos también es posible al reducir el tamaño de la pila por hilo.

Terminando

En esta guía, explicamos un proceso multiproceso o de múltiples subprocesos. A continuación, contamos el límite máximo de subprocesos de cada proceso y aprendemos sobre la importancia del número máximo de hilos. Después de tomar toda esta información, podemos establecer el valor máximo de los subprocesos.

Puede establecer el valor máximo de los hilos de varias maneras, que hemos explicado en esta guía. Al ver y comprender esto, también puede establecer los valores máximos de sus hilos en Linux.