【已解决】-bash: fork: Cannot allocate memory 问题的处理

昨日有个客户说服务器搭建的网站打不开了,后来经过排查发现是apache、mysql和php均停止运行了,相比优势超载导致的,

于是乎就进行了先行启动这些软件,但是启动完成之后,不得了了,宝塔面板进不去了,而且SSH有时候还是连接不上,还会提示-bash: fork: Cannot allocate memory 这个错误信息,经过不懈的努力,得到了以下解决方案:

情况1:如果SSH连不上的情况下,直接重启云服务器,可能要重复几次,直到SSH能连上为止

情况2:连上SSH之后,输入“bt”命令仍出现宝塔的命令行,但是宝塔面板仍打不开,如下述代码所示:

===============宝塔面板命令行==================
(1) 重启面板服务           (8) 改面板端口
(2) 停止面板服务           (9) 清除面板缓存
(3) 启动面板服务           (10) 清除登录限制
(4) 重载面板服务           (11) 设置是否开启IP + User-Agent验证
(5) 修改面板密码           (12) 取消域名绑定限制
(6) 修改面板用户名         (13) 取消IP访问限制
(7) 强制修改MySQL密码      (14) 查看面板默认信息
(22) 显示面板错误日志      (15) 清理系统垃圾
(23) 关闭BasicAuth认证     (16) 修复面板(检查错误并更新面板文件到最新版)
(24) 关闭动态口令认证      (17) 设置日志切割是否压缩
(25) 设置是否保存文件历史副本  (18) 设置是否自动备份面板
(26) 关闭面板ssl           (28) 修改面板安全入口
(0) 取消                   (29) 取消访问设备验证
===============================================

这个情况下我们只需要输入:free 查看内存,和重启服务器一样,一次出不来多试几次

然后查看下最大进程数

sysctl kernel.pid_max (这里是我已经改过的)

然后查看进程数ps -eLf | wc -l 查看  程数

这么做的目的是为了看看进程数是否超过最大进程数,如果超过,执行以下命令修改最大进程

echo 1000000 > /proc/sys/kernel/pid_max 修改后系统恢复

永久生效

echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf

sysctl -p

这时候宝塔面板应该是可以上去了,如果还不行可以输入bt命令,输入16(修复面板并升级最高版本)

之后再次登录宝塔就可以了,如果仍上不去可以尝试下清理浏览器缓存

阅读剩余
THE END