1.首先使用jps命令查看进程PID
2.使用jmap -dump:format=b,live,file=文件名 进程PID,文件名可以使txt,bin,hprof等
然后使用jdk自带的jvisualvm工具,把文件导进去进行分析
找到文件导入即可
1.当OutOfMemoryError发生时,自动生成 heap dump文件的方法,输出到指定的路径d:/aa.hprof
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/aa.hprof
2.当 JVM 执行 FullGC 前执行 dump
-XX:+HeapDumpBeforeFullGC
3.当 JVM 执行 FullGC 后执行 dump
-XX:+HeapDumpAfterFullGC
内存消耗查看jmap -histo:live pid | head -n 30 >> 输出文件路径
jmap -histo:live 16900 >> d:/s.txt
head -n 30 表示查看前30个
注意:JVM 生成 Heap Dump 的时候,虚拟机是暂停一切服务的。如果是线上系统执行 Heap Dump 时需要注意