pid max致使fork: Cannot allocate memory 的处理

海外一台服务器凌晨就开始出现了不能登陆游戏。早上运营人员告知上服务器查看了下。bash

一打命令就界面提示 -bash: fork: Cannot allocate memory服务器

输入了几回top 出来了才出来了,一看也还有内存剩余的。ide

想看看其余命令都查看不到,只能让运营方控制台上重启服务器先。
pid max致使fork: Cannot allocate memory 的处理优化

就着查看有关这样提示的问题.net

重启以后查看有关进程和线程,发现jdk的线程一直在增长,应该是这个一直只增不放致使了超过系统默认的kernel.pid_max=32678线程

pid max致使fork: Cannot allocate memory 的处理

只有找研发去优化代码。3d

系统这边也只能先把kernel.pid_max调高些。blog

###
查看最大进程数 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

参考:pid max致使fork: Cannot allocate memory 的分析及解决办法
http://www.javashuo.com/article/p-tiplcmvm-np.html

参考:-bash: fork: Cannot allocate memory 问题的处理
http://www.javashuo.com/article/p-ufnujsfb-nh.html

相关文章
相关标签/搜索