系统宕机时如何让JVM生成javacore和heapdump文件-Dump文件

系统宕机时如何让JVM生成javacore和heapdump文件

当系统宕机,我们需要分析系统宕机原因,除了日志还有两个非常关键的文件可以帮助我们快速找到问题,这两个文件就是javacore和heapdump。

javacore:是 Java 提供的一种诊断特性,能够提供一份可读的当前运行的 JVM 中线程使用情况的快照。即在某个特定时刻,JVM 中有哪些线程在运行,每个线程执行到哪一个类,哪一个方法。

heapdump:是在特定时刻JVM堆内存使用情况的快照,是分析OOM(内存溢出)的利器。

但是并不是所有JVM在宕机时都会生成这两个文件,需要开启相关参数才可以。

SUN/Oracle JVM

系统宕机时如何让JVM生成javacore和heapdump文件

HotSpot JDK

如果要即时动态生成heapdump文件可以使用jmap命令

jmap -dump:format=b,file=temp_heapdump.hprof <pid>

IBM JVM

系统宕机时如何让JVM生成javacore和heapdump文件

IBM JDK

手工生成javacore文件

kill -3 pid

手工生成heapdump文件

启动wsadmin,进入wsadmin环境

系统宕机时如何让JVM生成javacore和heapdump文件

生成heapdump

HP JVM

系统宕机时如何让JVM生成javacore和heapdump文件

hp jdk

推荐阅读