记录用Memory Analyzer分析内存泄漏的解决过程

事故原因:我们的 一个线上项目出现了   java.lang.OutOfMemoryError: GC overhead limit exceeded

                   top 命令发现CPU load average 超过了核心线程数。整个项目属于假死状态。

                  下载   堆栈信息进行分析如下 图所示:

1:打开7个G的文件

2,如下图所示

3,打开details进行分析。

4,分析如图所示,可以看到具体没有进行回收的对象是哪个,我的项目是ad_app_business_d_stat_xxxxx。

5,打出现如下图所示,就可看到具体调用哪个方法出现了上图的,对象太多没有进行回收。

6,根据上图的方法找到对应代码,查看代码找到问题是循环这里出现了问题,导致产生了大量对象没有进行回收,然后做相应调整,解决线上的内存泄露问题。

猜你喜欢

转载自blog.csdn.net/hcmony/article/details/81186395