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

相关推荐
dllmayday32 分钟前
Linux 上用终端连接 WiFi
linux·服务器·windows
ACP广源盛1392462567343 分钟前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
极客先躯2 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188962 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
我命由我123452 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
峥无2 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
aXin_ya2 小时前
微服务第八天 Sentinel 四种分布式事务模式
java·数据库·微服务
Halo_tjn2 小时前
Java Set集合相关知识点
java·开发语言·算法
用户2367829801682 小时前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux
Linsk2 小时前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle