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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pid max导致fork: Cannot allocate memory 的处理相关的知识,希望对你有一定的参考价值。

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

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

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

想看看其他命令都查看不到,只能让运营方控制台上重启服务器先。
技术分享图片

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

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

技术分享图片

只有找研发去优化代码。

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

###
查看最大进程数 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 的分析及解决办法
https://blog.csdn.net/onlyellow/article/details/51917757

参考:-bash: fork: Cannot allocate memory 问题的处理
https://blog.csdn.net/woshizhangliang999/article/details/66473884

以上是关于pid max导致fork: Cannot allocate memory 的处理的主要内容,如果未能解决你的问题,请参考以下文章

-bash:fork:Cannot allocate memory 问题的处理

测试kernel.pid_max值

Can't rewrite append only file in background: fork: Cannot allocate memory

Redis Fork导致OMM killer

fork failed.: Cannot allocate memory

pcntl_fork 导致 MySQL server has gone away 解决方案