SSH
resource temporarily unavailable
场景描述
远程登录时报 fork failed: resource temporarily unavailable
且已建立SSH连接会话输入任何命令报 bash: fork: Cannot allocate memory
可能原因
可能是内存不足或者进程数超限导致。
当系统内部的总进程数达到了 pid_max 时,再创建新进程时会报 fork:Cannot allocate memory错。
解决办法
1.查看系统内存使用率free
是否过高
2.查看oom记录grep "Out of memory" /var/log/messages
Linux 内核有个机制叫OOM killer(Out Of Memory killer)。该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。
3.查看进程是否超限制pstree -p | wc -l
执行命令sysctl kernel.pid_max
查看当前进程数限制额。如进程数超过限制,ps -efL
定位启动进程较多的程序。临时修改方案sysctl -w kernel.pid_max=65535
;永久修改echo "kernel.pid_max = 65535" >> /etc/sysctl.conf && sysctl -p