linux下的javagate服务断掉的原因及解决思路
- 游戏开发
- 2025-08-16 15:27:02

一.查询断掉的原因 1.查看gate日志,发现没有报错信息,突然就断了
2.查看是不是OOM导致
dmesg | grep java
发现确实Out of Memory了 3.发生问题的原因: 默认情况下, Linux kernels(内核)允许进程申请的量超过系统可用内存. 这是因为,在大多数情况下, 很多进程申请了很多内存, 但实际使用的量并没有那么多. 有个简单的类比, 宽带租赁的服务商, 可能他的总带宽只有 10Gbps, 但却卖出远远超过100份以上的 100Mbps 带宽, 原因是多数时候, 宽带用户之间是错峰的, 而且不可能每个用户都用满服务商所承诺的带宽。
4.解决思路 法1:保护我们重要的进程,避免被处理掉实例 1.获得重要进程的PID
ps -ef|grep java2.(输入-17,禁止被OOM机制处理)
echo -17 > /proc/PID/oom_score_adj法2:改变vm.overcommit_memory的参数 默认值为:0
从内核文档里得知,该参数有三个值,分别是:
0:当用户空间请求更多的的内存时,内核尝试估算出剩余可用的内存。
1:当设这个参数值为1时,内核允许超量使用内存直到用完为止,主要用于科学计算
2:当设这个参数值为2时,内核会使用一个决不过量使用内存的算法,即系统整个内存地址空间不能超过swap+50%的RAM值,50%参数的设定是在overcommit_ratio中设定。
默认是0,如果法1之后还崩,那就看情况选择1或者2
linux下的javagate服务断掉的原因及解决思路由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“linux下的javagate服务断掉的原因及解决思路”