今天生产机器忽然没法登陆了,正好有一个用top挂着,可是退出top,执行任何命令都报-bash: fork: Cannot allocate memory,可是查看内存仍是有不少空闲,而后在百度上查了不少资料,通过在虚拟机上测试,找到了解决办法。bash
缘由是进程数满了,超过了系统设置的默认值测试
查看最大进程数 sysctl kernel.pid_max.net
查看全部进程数ps -eLf | wc -lblog
会发现全部进程数基本快超过系统默认的进程数量了进程
修改最大进程数后系统便可恢复,无需重启进程。
echo 1000000 > /proc/sys/kernel/pid_max
永久生效
echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf
sysctl -p内存