Cambio de los límites de ID de proceso (kernel.pid_max)
Contexto
Los ID de proceso (PID) son un recurso fundamental en los nodos. Es trivial alcanzar el límite de tareas sin alcanzar ningún otro límite de recursos, lo que puede causar inestabilidad a una máquina host.
Puede ajustar el límite de PID (kernel.pid_max) de acuerdo con los requisitos de servicio.
kernel.pid_max predeterminados
A partir de enero de 2022, CCE cambia el valor predeterminado de kernel.pid_max a 4194304 para los nodos de EulerOS 2.5, CentOS 7.6 y Ubuntu 18.04 en clústeres de v1.17 o posterior. Condiciones específicas:
- Versión del clúster: v1.17.17 o posterior
- Creación del nodo: después del 30 de enero de 2022
Si no se cumplen las dos condiciones anteriores, el kernel.pid_max en los nodos de EulerOS 2.5, CentOS 7.6 y Ubuntu 18.04 es 32768 por defecto.
SO |
Clústeres de 1.17.9 y anteriores |
Clústeres de 1.17.17 y posteriores |
|
Nodos creados el 30 de enero de 2022 o antes |
Nodos creados después del 30 de enero de 2022 |
||
EulerOS 2.5 |
32768 |
32768 |
4194304 |
CentOS 7.6 |
32768 |
32768 |
4194304 |
Ubuntu 18.04 |
N/A |
32768 |
4194304 |
EulerOS 2.3 |
57344 |
57344 |
57344 |
EulerOS 2.9 |
N/A |
4194304 |
4194304 |
Sugerencia de cambio
- EulerOS 2.3: Cambie el valor predeterminado a 4194304 para todos los nodos. Para obtener más información, véase Cambio de kernel.pid_max de un nodo. Utilice un script de preinstalación para hacerlo para nuevos nodos y grupos de nodos. Para más detalles, véase Configuración de kernel.pid_max al crear un grupo de nodos y Configuración de kernel.pid_max al crear un nodo.
- EulerOS 2.5, CentOS 7.6 y Ubuntu 18.04:
- Cambie el valor de kernel.pid_max a 4194304 para los nodos creados el 30 de enero de 2022 o anteriores en clústeres de v1.17.17 o posterior. Para obtener más información, véase Cambio de kernel.pid_max de un nodo.
- Para clústeres de 1.17.9 y anteriores:
- Cambie el valor de kernel.pid_max a 4194304 para los nodos existentes. Para obtener más información, véase Cambio de kernel.pid_max de un nodo.
- Utilice un script de preinstalación para hacerlo para nuevos nodos y grupos de nodos. Para más detalles, véase Configuración de kernel.pid_max al crear un grupo de nodos y Configuración de kernel.pid_max al crear un nodo.
Consulta de kernel.pid_max
Log in to the node and run the following command to query the value of kernel.pid_max:
sysctl kernel.pid_max
# sysctl kernel.pid_max kernel.pid_max = 32768
Si es necesario, cambie kernel.pid_max según lo indicado en Cambio de kernel.pid_max de un nodo.
Comprobación de PID de nodo
Inicie sesión en el nodo y ejecute el siguiente comando para comprobar cuántos PID están en uso:
ps -eflL | wc -l
# ps -eflL | wc -l 691
Cambio de kernel.pid_max de un nodo
Inicie sesión en el nodo y ejecute el siguiente comando. 4194304 indica el valor de kernel.pid_max y se usa como ejemplo aquí.
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p
echo 4194304 > /sys/fs/cgroup/pids/kubepods/pids.max
Ejecute los siguientes comandos para comprobar si el cambio es correcto (si el valor devuelto es el mismo que el configurado).
# sysctl kernel.pid_max kernel.pid_max = 4194304 # cat /sys/fs/cgroup/pids/kubepods/pids.max 4194304
Configuración de kernel.pid_max al crear un grupo de nodos
EulerOS 2.3: Se requiere la configuración.
EulerOS 2.5, CentOS 7.6 y Ubuntu 18.04: Configuration required para clústeres de v1.17.9 y anteriores. Configuration NOT required para clústeres de v1.17.17 y posteriores porque se ha cambiado el valor.
Puede configurar kernel.pid_max en el script de preinstalación para crear un nodo a partir de un grupo de nodos.
Al crear un grupo de nodos, elija Advanced Settings > Post-installation Command y agregue el siguiente comando:
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p
Configuración de kernel.pid_max al crear un nodo
EulerOS 2.3: Se requiere la configuración.
EulerOS 2.5, CentOS 7.6 y Ubuntu 18.04: Configuration required para clústeres de v1.17.9 y anteriores. Configuration NOT required para clústeres de v1.17.17 y posteriores porque se ha cambiado el valor.
Puede configurar kernel.pid_max mediante el script de preinstalación al crear un nodo.
Elija Advanced Settings > Post-installation Command y agregue el siguiente comando:
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p