BUG列表:如何定位线上 OOM ?

可能情况:
  • 一次性申请的数据太多
    • 方案 : 分页
  • 内存资源耗尽,未释放资源(属于内存泄漏)
    • 找到未释放的资源,进行释放
    • 方案 : 池化
  • 本身资源不足
    • jmap -heap 【进程ID】 : 查看堆信息
    • 调整堆内存的方案 :
如何定位:
  • 已经 OOM

    • 提前设置Dump文件 :

      Step1 : -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=[文件路径]

      Step2 : 用 visualvm 载入 Dump文件 ,选择堆。

      Step3 : 用工具查看,如

      ​ 查看跟业务有关的对象(消耗的内存较大)-> 找到GCRoot -> 查看线程栈

  • 还未 OOM

    • 导出dump文件:

      jmap -dump:format=b, file=[dumplog].hprof 【进程ID】

相关推荐
invicinble13 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
wbs_scy14 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·开发语言
ss27314 小时前
食谱推荐系统功能测试如何写?
java·数据库·spring boot·功能测试
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
倔强的石头10614 小时前
【Linux指南】基础IO系列(八):实战衔接 —— 给微型 Shell 添加完整重定向功能
linux·运维·服务器
try2find15 小时前
打印ascii码报错问题
java·linux·前端
014-code15 小时前
CompletableFuture 实战模板(超时、组合、异常链处理)
java·数据库
Nicander15 小时前
多数据源下@transcation事务踩坑
java·后端
Ujimatsu15 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu
それども15 小时前
DELETE 和 TRUNCATE TABLE区别
java·数据库·mysql