修改节点进程 ID数量上限kernel.pid_max
背景信息
进程 ID(PID)是节点上的一种基础资源,容易在尚未超出其它资源约束的时候触及进程ID数量上限,进而导致节点不稳定。
您可以根据实际业务需求调整进程ID数量上限。
默认kernel.pid_max说明
CCE在2022年1月底将1.17及以上集群的节点公共操作系统EulerOS 2.5、CentOS 7.6、Ubuntu 18.04镜像kernel.pid_max默认值调整为4194304,满足如下两个条件节点的kernel.pid_max值为4194304。
- 集群版本:1.17.17及以上版本
- 节点创建时间:2022年1月30日之后
如果不满足如上两个条件,EulerOS 2.5、CentOS 7.6、Ubuntu 18.04上kernel.pid_max默认值32768。
操作系统 |
1.17.9及以下版本集群 |
1.17.17及以上版本集群 |
|
2022年1月30日及之前创建的节点 |
2022年1月30日之后创建的节点 |
||
EulerOS 2.5 |
32768 |
32768 |
4194304 |
CentOS 7.6 |
32768 |
32768 |
4194304 |
Ubuntu 18.04 |
不涉及 |
32768 |
4194304 |
EulerOS 2.3 |
57344 |
57344 |
57344 |
EulerOS 2.9 |
不涉及 |
4194304 |
4194304 |
修改建议
- EulerOS 2.3:所有节点都涉及,建议您将kernel.pid_max取值修改为4194304,具体方法请参见修改节点kernel.pid_max。且后续创建节点和节点池时配置安装前脚本修改kernel.pid_max,具体方法请参见配置节点池kernel.pid_max和创建节点时配置kernel.pid_max
- EulerOS 2.5、CentOS 7.6、Ubuntu 18.04:
- 对于1.17.17及以上版本集群2022年1月30日及之前创建的节点,建议您将kernel.pid_max取值修改为4194304,具体方法请参见修改节点kernel.pid_max。
- 对于1.17.9及以下版本集群
- 存量节点建议您将kernel.pid_max取值修改为4194304,具体方法请参见修改节点kernel.pid_max。
- 如果新创建节点和节点池,建议配置安装前脚本修改kernel.pid_max,具体方法请参见配置节点池kernel.pid_max和创建节点时配置kernel.pid_max。
查看节点kernel.pid_max
登录节点,执行如下命令查看节点kernel.pid_max。
sysctl kernel.pid_max
# sysctl kernel.pid_max kernel.pid_max = 32768
如果节点kernel.pid_max大小不能满足您的业务诉求,您可以修改kernel.pid_max大小,具体方法请参见修改节点kernel.pid_max。
查看节点当前pid用量
登录节点,执行如下命令可查看当前pid用量。
ps -eflL | wc -l
# ps -eflL | wc -l 691
修改节点kernel.pid_max
登录节点,执行如下命令修改,其中4194304为kernel.pid_max大小,可根据实际业务需求修改。
echo kernel.pid_max = 4194304 >> /etc/sysctl.conf && sysctl -p
echo 4194304 > /sys/fs/cgroup/pids/kubepods/pids.max
执行如下命令检查是否修改成功,当返回值与修改值一致时说明修改正确。
# sysctl kernel.pid_max kernel.pid_max = 4194304 # cat /sys/fs/cgroup/pids/kubepods/pids.max 4194304