-bash: fork: Cannot allocate memory(1)

[如果都连不上 那就没办法了,重启机器连上在说]

打命令就界面提示 -bash: fork: Cannot allocate memory 一直提示:无法分配内存

后面找了一顿猛如虎的排查到问题点了 就是进程连接满了 无法连接上新进程了
就是图下面这样的了
在这里插入图片描述

-bash: fork: Cannot allocate memory 一连串的无法分配内存

系统默认的pid_max 值为32768,查询现有的进程数**#cat /proc/sys/kernel/pid_max**
正常情况下是够用的,当我们跑重量任务时,会不够用,最终导致内存无法分配的错误,然而连不上的悲剧
在这里插入图片描述

查询可连接最大进程数cat /proc/sys/kernel/pid_max

查询现有的连接进程数 pstree -p|wc -l
在这里插入图片描述

查询现有的进程数 pstree -p|wc -l

然后把设置最大 pid_max
在这里插入图片描述

临时修改最大进程数 [重启后就失效]
#echo 1000000 > /proc/sys/kernel/pid_max
永久修改最大进程数 [重启后不失效]
#echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf
#sysctl -p

原文地址:https://www.cnblogs.com/zh-dream/p/13649776.html