Alteração de limites de ID de processo (kernel.pid_max)
Contexto
Os IDs de processos (PIDs) são um recurso fundamental nos nós. É trivial atingir o limite de tarefas sem atingir nenhum outros limites de recursos, o que pode causar instabilidade em uma máquina host.
Você pode ajustar o limite de PID (kernel.pid_max) de acordo com os requisitos de serviço.
Padrões do kernel.pid_max
A partir de janeiro de 2022, o CCE altera o valor padrão de kernel.pid_max para 4194304 para os nós de EulerOS 2.5, CentOS 7.6 e Ubuntu 18.04 em clusters de v1.17 ou posterior. Condições específicas:
- Versão do cluster: v1.17.17 ou posterior
- Criação de nó: após 30 de janeiro de 2022
Se as duas condições anteriores não forem atendidas, kernel.pid_max nos nós de EulerOS 2.5, CentOS 7.6 e Ubuntu 18.04 o padrão é 32768.
SO |
Clusters de 1.17.9 e anteriores |
Clusters de 1.17.17 e posteriores |
|
Nós criados em ou antes de 30 de janeiro de 2022 |
Nós criados após 30 de janeiro de 2022 |
||
EulerOS 2.5 |
32768 |
32768 |
4194304 |
CentOS 7.6 |
32768 |
32768 |
4194304 |
Ubuntu 18.04 |
N/D |
32768 |
4194304 |
EulerOS 2.3 |
57344 |
57344 |
57344 |
EulerOS 2.9 |
N/D |
4194304 |
4194304 |
Sugestão de alteração
- EulerOS 2.3: altere o padrão para 4194304 para todos os nós. Para mais detalhes, consulte Alterar o kernel.pid_max de um nó. Use um script de pré-instalação para fazer isso para novos nós e pools de nós. Para mais detalhes, veja Configurar kernel.pid_max ao criar um pool de nós e Configurar kernel.pid_max ao criar um nó.
- EulerOS 2.5, CentOS 7.6 e Ubuntu 18.04:
- altere o valor de kernel.pid_max para 4194304 para nós criados em 30 de janeiro de 2022 ou anterior em clusters de v1.17.17 ou posterior. Para mais detalhes, consulte Alterar o kernel.pid_max de um nó.
- Para clusters de 1.17.9 e anteriores:
- altere o valor de kernel.pid_max para 4194304 para nós existentes. Para mais detalhes, consulte Alterar o kernel.pid_max de um nó.
- Use um script de pré-instalação para fazer isso para novos nós e pools de nós. Para mais detalhes, veja Configurar kernel.pid_max ao criar um pool de nós e Configurar kernel.pid_max ao criar um nó.
Exibir kernel.pid_max
Faça logon no nó e execute o seguinte comando para obter o valor de kernel.pid_max:
sysctl kernel.pid_max
# sysctl kernel.pid_max kernel.pid_max = 32768
Altere kernel.pid_max, se necessário, conforme instruído em Alterar o kernel.pid_max de um nó.
Verificar os PIDs de nó
Faça logon no nó e execute o seguinte comando para verificar quantos PIDs estão em uso:
ps -eflL | wc -l
# ps -eflL | wc -l 691
Alterar o kernel.pid_max de um nó
Faça logon no nó e execute o seguinte comando: 4194304 indica o valor de kernel.pid_max e é usado como um exemplo aqui.
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p
echo 4194304 > /sys/fs/cgroup/pids/kubepods/pids.max
Execute os seguintes comandos para verificar se o valor retornado é o mesmo que você configurou:
# sysctl kernel.pid_max kernel.pid_max = 4194304 # cat /sys/fs/cgroup/pids/kubepods/pids.max 4194304
Configurar kernel.pid_max ao criar um pool de nós
EulerOS 2.3: configuração necessária.
EulerOS 2.5, CentOS 7.6 e Ubuntu 18.04: configuração necessária para clusters v1.17.9 e anteriores. Configuração desnecessária para clusters de v1.17.17 e posterior porque o valor foi alterado.
Você pode configurar kernel.pid_max no script de pré-instalação para criar um nó de um pool de nós.
Ao criar um pool de nós, escolha Advanced Settings > Post-installation Command e adicione o seguinte comando:
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p
Configurar kernel.pid_max ao criar um nó
EulerOS 2.3: configuração necessária.
EulerOS 2.5, CentOS 7.6 e Ubuntu 18.04: configuração necessária para clusters v1.17.9 e anteriores. Configuração desnecessária para clusters de v1.17.17 e posterior porque o valor foi alterado.
Você pode configurar kernel.pid_max usando o script de pré-instalação ao criar um nó.
EscolhaAdvanced Settings > Post-installation Command e adicione o seguinte comando:
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p