jmap、 jhat 分析堆内存溢出

  1. 查看该进程下堆内存的使用情况
    jmap -heap 1963(进程号)

  2. 快速定位内存泄露的方法:
    jmap -histo:live 1963

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

jmap、 jhat 分析堆内存溢出_第1张图片

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

3.还可以使用jhat分析内存溢出的原因
使用dump内存信息到heap.bin文件
jmap -dump:live,format=b,file=heap.bin 1963(进程号)
这里写图片描述

使用jhat 对heap.bin 文件进行分析
jhat -J-mx512m heap.bin 如果解析过程中出现内存不足,需要加大内存如:jhat -J-mx800m heap.bin

jmap、 jhat 分析堆内存溢出_第2张图片

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

4.jstat 监视垃圾回收(GC)时间,次数
这里写图片描述

S0: 幸存区0
S1: 幸存区1
E:年轻代
O:年老代
M:持久代
(以上都是已使用所占百分比)

YGC : 年轻代YGC的次数
YGCT :年轻代YGC所消耗的时间
FGC : 年老代full GC的次数
FGCT :年老代full GC所消耗的时间
GCT : 用于GC所消耗的总时间

jstat动态查看垃圾回收的情况:
jmap、 jhat 分析堆内存溢出_第3张图片

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

你可能感兴趣的:(内存,测试)