背景

早上ssh远程连接服务器的时候不能连接,ping却能Ping通,控制台登陆,输入任何命令都提示:

fork:Cannot allocate memory

解决方法

1 想查看是不是最大连接数被用满了,使用ps -efL,发现命令不能用,使用more,tail,free,top等等命令均不能用,我试着使用echo,如下:

echo "kernel.pid_max=655300" >>/etc/sysctl.conf
sysctl -p

发现sysctl也不能用 2 既然echo能用,直接使用echo添加最大连接数,如下:

echo "655300" >/proc/sys/kernel/pid_max 

添加后再使用ps命令能出结果了,说明确实是最大打开文件数的问题

总结

任何问题,能做到多尝试一下总是好的,我就在想如果是线上正在使用的机器不能总是重启吧,秉着尽量不重启的原则多想想办法,也许有办法解决问题.

附上另外一篇最大连接数问题 https://blog.51cto.com/riverxyz/5257581