jvm 基础之堆dump文件

2020/01/13

一、介绍Dump

当Java程序发布之后, 如果出现问题,我们可以把问题发生时VM的状态转储到文件里,这种文件就是Dump文件,我们可以根据dump文件找出问题。这种文件必须用专用工具软件打开。

  • 线程Dump:包含所有线程的运行状态。纯文本格式。
  • 堆Dump:包含线程Dump,和所有堆对象的状态。堆转储文件,是java进程在某个时间内的快照。它在触发快照的时候保存了很多信息:java对象和类信息。二进制格式。

二、获取Java Dump方法

1. 使用Java虚拟机制作Dump

jdk启动加参数: -XX:+HeapDumpOnOutOfMemoryError

-XX:+HeapDumpBeforeFullGC

-XX:+HeapDumpAfterFullGC

-XX:HeapDumpPath=/data/gc/dump/gc.dump

2. 使用命令行制作Dump

jmap -dump:format=b,file=e.bin pid

示例:jmap -dump:live,format=b,file=/data/prod/receive/test2.dump 30627

3. 使用图形化工具制作Dump

使用JDK(1.6)自带的工具:Java VisualVM。或者第三方工具,如jprofiler等

如果觉得本篇文章帮助到了您,可以请我喝杯咖啡 在这里插入图片描述

Post Directory