内存泄漏监控和排查

内存泄漏现象

1、tps出现大幅波动,并慢慢降低,甚至降为0,响应时间随之波动,慢慢升高;

压测开始不久:

内存泄漏监控和排查

压测一段时间之后:

内存泄漏监控和排查

2、通过jstat命令看到,Jvm中Old区不断增加,FullGC非常频繁(几乎一秒进行一次),对应的FullGC消耗的时间也不断增加;

内存泄漏监控和排查

3、通过jconsole/jvisualvm可以看到,堆内存曲线不断上升,接近上限时,变成一条直线;

内存泄漏监控和排查

4、日志报错java.lang.OutOfMemoryError: Java heap space;

内存泄漏监控和排查

问题排查

方法一:

1、通过jmap命令:jmap -histo pid | head -20,查看当前堆内存中实例数和占用内存最多的前20 个对象。

 从下图基本可以确定内存泄漏跟session和User类有关内存泄漏监控和排查

方法二:

1、通过jvisualvm,进行远程堆dump,然后把dump文件下载下来,用jvisualvm打开进行分析,可 以看到更直观的jvm中对象的信息。

内存泄漏监控和排查

内存泄漏监控和排查

内存泄漏监控和排查 

上一篇:性能调优命令之jmap


下一篇:JVM——定位内存中大类(jmap -histo)