美文网首页面试精选
[GC调优]一次内存泄漏的经历分享

[GC调优]一次内存泄漏的经历分享

作者: AbstractCulture | 来源:发表于2021-08-25 21:16 被阅读0次

背景

运维人员在生产服务器上用定时任务隔一段时间生成GC文件,今天在开发群里由报警机器人发送了一条消息"xxx应用发现GC文件,下载地址:xxxx",然后总监亲自给我们展示了如何去分析GC文件来判断是否有内存泄漏。

dump二进制文件-hprof

关于如何生成hprof文件,可以详细查阅一下jmap指令.
我这里直接贴出JVM指令:

# 使用jps查看进程号,也就是pid
$> jps
# 使用jmap导出dump文件  
$> jmap -dump:format=b,file=mydump.hprof pid  
dump

MemoryAnalyzer

使用大名鼎鼎的"MAT"(Memory Analyzer Tool)可以很好的分析dump文件.
下载地址: 官网

配置堆栈大小-MemoryAnalyzer.ini

-startup
plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.700.v20180518-1200
-vmargs
-Xmx4096m

打开dump文件-open file

  • 打开dump文件
open-dump

点击finish即可

finish

擒贼先擒王-Leak Suspects

Leak Suspects

看到Leak Suspects一开始我还有点懵逼,为此我还专门去查了一下google.


leak suspects

ok,这里我们看到,MAT把泄漏嫌疑最大的几个case展示出来了,那么我们可以从最大的嫌疑犯开始,直接看Problem Suspect 1.

1
  • 查看内存分配树、Thread Stack
button
  • 内存分配树
tree

这里说一下: 如果怀疑是SQL的问题,可以在堆栈中找找这个包所绑定的SQL:
org.apache.ibatis.mapping.BoundSql.

  • Thread OverView
details

这里提供一个快速查找的技巧,一般公司的项目,都会有特定的包路径,直接ctrl+F查找相关关键字即可,比如百度的项目,直接搜索"baidu".

结果

最后,我们定位到了一个SQL未进行分页,造成了内存泄漏。这里不对结果进行展示了.

相关文章

  • [GC调优]一次内存泄漏的经历分享

    背景 运维人员在生产服务器上用定时任务隔一段时间生成GC文件,今天在开发群里由报警机器人发送了一条消息"xxx应用...

  • JVM-GC调优

    零、本文纲要 一、 GC调优基本思路二、 新生代内存调优三、 老年代内存调优四、 GC调优案例 官方GC调优指南[...

  • JVM性能调优的6大步骤,及关键调优参数详解

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC ...

  • Java架构师面试题——JVM性能调优

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC ...

  • JVM调优

    一、JVM内存调优 对JVM内存的系统级的调优策略主要是减少GC的频率和Full GC的次数。 1️⃣Full G...

  • JVM系列篇:JVM性能调优的6大步骤,及关键调优参数详解

    本系列会持续更新。 一、JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数...

  • hbase gc调优(CMS与G1)

    hbase gc调优(CMS与G1) 一:hbase gc调优目的: 在HBase中,有两个在内存中的结构消费了绝...

  • jvm内存优化

    JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重...

  • JVM调优

    何时进行JVM调优 Heap内存(老年代)持续上涨达到设置的最大内存值; Full GC 次数频繁; GC 停顿时...

  • Android性能调优 - 内存调优

    1.前言 内存调优 是体现Android性能主要部分之一。 内存调优 中包含三种比较常见的场景,分别是内存泄漏、内...

网友评论

    本文标题:[GC调优]一次内存泄漏的经历分享

    本文链接:https://www.haomeiwen.com/subject/diveiltx.html