首页  

获取jvm heap dump 的几种方式     所属分类 jvm 浏览量 1508
Heap Dump  堆转储文件
Java进程在某个时间点的内存快照 ,保存了java对象和类的信息
通常在生成heap dump文件前会触发一次FullGC

heap dump 是诊断内存相关问题的重要信息来源,
例如内存泄漏,垃圾收集问题 和 java.lang.OutOfMemoryError,是优化内存消耗的重要依据。


使用 jmap
jmap -dump:format=b,file=$filepath $pid
jmap -dump:format=b,file=echoserver.dump 23286
jmap -dump:live,format=b,file=echoserver.dump 23286

jcmd命令
jcmd $pid GC.heap_dump xxx.dump
jcmd 23286 GC.heap_dump /Users/dugang/tmp/001.dump
相当于 jmap -dump:live


jvm 参数
HeapDumpOnOutOfMemoryError

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tmp/xxx.dump


-XX:+HeapDumpOnCtrlBreak

HPROF agent
To use the HPROF agent to generate a dump on the end of execution, or on SIGQUIT signal use the following JVM parameter:
-agentlib:hprof=heap=dump,format=b




JVisualVM
连接本地或远程jvm  生成 Heap Dump
本地JVM进程 ,右键菜单   heap dump


JMX
使用JMX客户端工具进行操作 
JConsole、jmxsh、Java Mission 、VisualVM等


第三方工具 譬如  Arthas
heapdump /tmp/dump.hprof

上一篇     下一篇
netty异常处理机制

Garbage Collection Roots

内存分析工具MAT中的重要概念

MAT内存泄露分析实战

MAT内存分析之OQL

java.lang.ref包