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】

相关推荐
gelald2 小时前
Spring - 循环依赖
java·后端·spring
凤山老林2 小时前
Java 开发者零成本构建 RAG 知识库:Spring AI Alibaba + Ollama 搭建本地 RAG 知识库
java·人工智能·知识库·rag·spring ai
爱码驱动2 小时前
文件操作和IO
java·开发语言·io·文件操作
坊钰2 小时前
Java 反射机制
java·开发语言
明灯伴古佛2 小时前
面试:为什么synchronized是一个悲观锁
java·面试·职场和发展
杨云龙UP2 小时前
MySQL慢查询日志暴涨导致磁盘告警:slow query log膨胀至397G的生产故障排查:清理、参数优化
linux·运维·服务器·数据库·mysql
小旭95272 小时前
Spring Data Redis 从入门到实战:简化 Redis 操作全解析
java·开发语言·spring boot·redis·spring
chQHk57BN2 小时前
DeepFlow Agent 故障排查指南:注册失败、协议解析、资源识别与配置方式
linux·运维·服务器
希望永不加班2 小时前
SpringBoot 多数据源配置(读写分离基础)
java·spring boot·后端·spring