Linux服务器执行命令报错“-bash: fork: Cannot allocate memory”
现象
Linux服务器报错:
1 2 | $ free -m -bash: fork: Cannot allocate memory |
执行任意命令都报这个错。。。。
分析
查看系统配置最大进程数配置 sysctl kernel.pid_max
,pid_max
默认值为32768
查看系统目前总进程:
1 2 | ps -eLf | wc -l pstree -p | wc -l |
原因
可能是内存不足或者进程数超限导致。
解决
1 2 3 4 5 6 7 8 9 10 11 | -- 临时修改最大进程数 [root@proxy02 ~]# echo 4194304 > /proc/sys/kernel/pid_max -- 永久生效 [root@proxy02 ~]# echo "kernel.pid_max=4194304 " >> /etc/sysctl.conf [root@proxy02 ~]# sysctl -p ... kernel.pid_max = 4194304 [root@proxy02 ~]# sysctl kernel.pid_max kernel.pid_max = 4194304 |
我的情况
我的情况是,执行如何命令都不行,而且退出后就不能登陆了,所以只能重启OS。