JVM线上实战(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014730165/article/details/82220283

通过《jvm线上实现(1)》定位到问题的所在,为了更近一步的定位错误信息,dump当前java进程堆信息


加载当前的堆信息:jmap -dump:live,format=b,file=dump.hprof 5511
通过 Eclipse IDE MAT 插件进行堆分析


Java堆分析:
Eclipse 导入堆信息
这里写图片描述
1. 查看当前堆内存泄漏情况
这里写图片描述
堆的对象泄漏可以分析出,当前堆中存在大量的:”io.netty.util.internal.InternalThreadLocalMap“这个是netty的内部线程

2.查看当前堆中占用最大的对象
这里写图片描述

这里写图片描述
通过对堆的对象分析,可以发现,当前系统中大量存在连接池对象,从而定位到问题所在,连接池出现了泄漏。导致系统大量创建连接池,而没有释放。出现了内存泄漏


通过堆信息分析,找到了问题所在,修改可能出现问题的代码,做到了jvm的全面诊断。

猜你喜欢

转载自blog.csdn.net/u014730165/article/details/82220283