天天看点

jmap、 jhat 分析堆内存溢出

  1. 查看该进程下堆内存的使用情况

    jmap -heap 1963(进程号)

  2. 快速定位内存泄露的方法:

    jmap -histo:live 1963

jmap -histo:live 1963 >1.txt 将信息输出到指定文件中

jmap、 jhat 分析堆内存溢出

可以找到造成内存溢出的具体方法。

3.还可以使用jhat分析内存溢出的原因

使用dump内存信息到heap.bin文件

jmap -dump:live,format=b,file=heap.bin 1963(进程号)

jmap、 jhat 分析堆内存溢出

使用jhat 对heap.bin 文件进行分析

jhat -J-mx512m heap.bin 如果解析过程中出现内存不足,需要加大内存如:jhat -J-mx800m heap.bin

jmap、 jhat 分析堆内存溢出

在通过浏览器访问 http://192.168.5.105:7000/ 即可看到分析结果

4.jstat 监视垃圾回收(GC)时间,次数

jmap、 jhat 分析堆内存溢出

S0: 幸存区0

S1: 幸存区1

E:年轻代

O:年老代

M:持久代

(以上都是已使用所占百分比)

YGC : 年轻代YGC的次数

YGCT :年轻代YGC所消耗的时间

FGC : 年老代full GC的次数

FGCT :年老代full GC所消耗的时间

GCT : 用于GC所消耗的总时间

jstat动态查看垃圾回收的情况:

jmap、 jhat 分析堆内存溢出

每隔3s钟采集一次数据,采集10次。