JVM 故障诊断常用工具之 jmap

该工具可用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。 此外,该工具还可以查看堆内存详细信息、堆内存中的对象统计信息、堆内存中的类加载器统计信息、在F-Queue队列等待Finalizer线程执行finalizer方法的对象。使用格式:jmap [option] <pid>

常用option选项如下所示

-heap

打印heap的概要信息、使用的GC算法、Heap配置以及堆内各个区域的内存使用情况

JVM 故障诊断常用工具之 jmap

-histo[:live]

统计当前堆中各个类的实例数量以及所占字节数,:live参数会先触发GC,然后再统计数据

JVM 故障诊断常用工具之 jmap

使用 :live 参数命令格式:jmap -histo:live <pid>

-finalizerinfo

打印在F-Queue队列等待Finalizer线程执行finalizer方法的对象

JVM 故障诊断常用工具之 jmap

-dump:<dump-options>

该参数用于生成JVM dump文件,然后借助于MAT、IBM-Memory-Analyzer、JProfiler等工具进行内存泄漏分析。其中,

<dump-option>选项有以下选择

live

进行dump内存之前,是否要执行GC,再进行dump,否则直接dump内存

format=b

dump文件格式采用二进制格式

file=<file>

指定dump文件的存放位置

JVM 故障诊断常用工具之 jmap

待命令执行完成后,在目录 /home/dev/ 下,可以找得到生成的dump文件

 

参考文章

JVM调优命令-jmap