问题现象
- 登录主机后提示:-bash: fork: Cannot allocate memory
解决办法
- 查看本机内存
]# free #应该可以看到内存已经用完了
- 查看本机最大允许进程数
]# sysctl kernel.pid_max
32768
]# ps -eLf|wc -l #查看目前进程数,有可能因为内存过满,无法显示
32568
- 设置最大允许进程数
]# echo 1000000 > /proc/sys/kernel/pid_max #此后再使用其它命令应该可以正常显示了
- 查看占用内存最大的进程
]# top
# shift+m,按照内存使用量排序发现是Tomcat进程
]# grep -eLf|grep java |wc -l
32359
]# kill -9 pid #杀掉该进程重启服务
若上述命令都不能使用,则"]# init 6"重启服务器,~对就是这么简单粗暴
附:
init 0 - 停机(千万不能把initdefault 设置为0 )
init 1 - 单用户模式
init 2 - 多用户,没有NFS
init 3 - 完全多用户模式(标准的运行级)
init 4 - 没有用到
init 5 - X11 (xwindow)
init 6 - 重新启动 (千万不要把initdefault 设置为6 )