获取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包