linux 下的java gate服务断掉的原因及解决思路

一.查询断掉的原因

1.查看gate日志,发现没有报错信息,突然就断了

2.查看是不是OOM导致

dmesg | grep java

发现确实Out of Memory了

3.发生问题的原因:

默认情况下, Linux kernels(内核)允许进程申请的量超过系统可用内存. 这是因为,在大多数情况下, 很多进程申请了很多内存, 但实际使用的量并没有那么多.

有个简单的类比, 宽带租赁的服务商, 可能他的总带宽只有 10Gbps, 但却卖出远远超过100份以上的 100Mbps 带宽, 原因是多数时候, 宽带用户之间是错峰的, 而且不可能每个用户都用满服务商所承诺的带宽。

4.解决思路

法1:保护我们重要的进程,避免被处理掉实例

1.获得重要进程的PID

复制代码
ps -ef|grep java

2.(输入-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

相关推荐
识君啊23 分钟前
Java异常处理:中小厂面试通关指南
java·开发语言·面试·异常处理·exception·中小厂
vin_zheng25 分钟前
破解企业安全软件网络拦截实战记录
运维
林姜泽樾2 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
月月玩代码2 小时前
Actuator,Spring Boot应用监控与管理端点!
java·spring boot·后端
xiaokangzhe2 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子2 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
xiaokangzhe3 小时前
Nginx核心功能
运维·nginx
松果1773 小时前
以本地时钟为源的时间服务器
运维·chrony·时间服务器
阿珍爱上了阿强,在一个有星星的夜晚3 小时前
node后端页面性能监测分析
java·学习方法
Java程序之猿3 小时前
SpringBoot + camel+IBM MQ实现消息队列处理
java·spring boot·mybatis