当前位置: 首页 > news >正文

部署项目频繁掉线-----Java 进程在云服务器内存不足被 OOM Killer 频繁杀死-----如何解决?

一、查询系统日志

grep -i "java" /var/log/messages

执行这条命令,检查系统日志里是否有 Java 进程被 OOM Killer 杀死的记录。

日志中反复出现以下内容:

Out of memory: Killed process 3679325 (java) total-vm:2947000kB, anon-rss:406604kB... 

Out of memory: Killed process:明确表示 Java 进程因内存不足被系统强制终止;
total-vm:进程申请的虚拟内存总量(约 2.9GB);
anon-rss:进程实际使用的物理内存(约 400MB 左右);
UID:0:以 root 用户运行,权限足够但内存仍不足。 

问题根源:

你的服务器总内存只有 1.8Gifree -h 结果),而:

  1. Java 进程内存需求高:即使单个 Java 进程实际占用~400MB 物理内存,但虚拟内存申请量高达~2.9GB,叠加系统其他进程(如内核、SSH、日志服务等),总内存会被快速耗尽;
  2. 无 Swap 分区free -h 显示 Swap: 0B,内存不足时无法通过交换空间缓解,系统只能直接杀死进程。

解决方案:

1. 紧急缓解:添加 Swap 分区

临时创建 Swap 文件,让系统内存不足时有缓冲空间(避免频繁 OOM 杀进程): 

# 1. 创建 1GB Swap 文件(根据实际情况调整大小,如 2G 则改为 count=2048)
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024# 2. 设置文件权限(安全必须)
sudo chmod 600 /swapfile# 3. 格式化 Swap 文件
sudo mkswap /swapfile# 4. 启用 Swap
sudo swapon /swapfile# 5. 设置开机自动挂载(避免重启后失效)
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab

验证:执行 free -h,看到 Swap 行有值(如 1.0Gi)则成功。

 

 

 

二、内存使用情况分析(free -h 结果) 

 

 

 

http://www.dtcms.com/a/276530.html

相关文章:

  • python正则表达式re(Regular Expression)
  • 【代码随想录】刷题笔记——哈希表篇
  • 【人工智能】AI Agent 工作流及产品介绍
  • 傅里叶方法求解正方形区域拉普拉斯方程
  • 2025 年第十五届 APMCM 亚太地区大学生数学建模竞赛-B 题 疾病的预测与大数据分析 成品
  • 阻有形,容无声——STA 签核之RC Corner
  • docker—— harbor私有仓库部署管理
  • 在LC480T上部署xapp1052
  • OSPF五类LSA之FA实验案例解析
  • promise 如何实现红绿黄灯亮
  • BGP 路由优选属性(7)【MED】官方考试综合实验题【bgp】【acl】【ip-prefix】【route-policy】【icmp 环路】精讲
  • 基于同花顺API的熊市与牛市识别模型开发及因子分析
  • CCS-MSPM0G3507-2-基础篇-定时器中断
  • Linux如何设置自启动程序?
  • 复现永恒之蓝
  • LINUX文件系统权限,命令解释器alias,文件查看和查找
  • frp内网穿透教程及相关配置
  • LaTeX | 在电脑上输入专业数学符号
  • Cursor创建Spring Boot项目
  • CUDA Graph与torch.compile推理计算图捕获详解
  • 电网通俗解析术语2:一二次设备关联
  • 【数据结构初阶】--单链表(一)
  • 细解muduo中的每个核心类
  • C++ const 关键字解析
  • windows 改用 nvm
  • 睿抗CAIP编程技能
  • AI 助力编程:Cursor Vibe Coding 场景实战演示
  • js二维数组如何变为一维数组
  • 数位动态规划详解
  • 顺序队列和链式队列