jvm 生成 javacore 和 heapdump 文件

 

一、标准的SUN/Oracle JVM

当内存溢出时生成heapdump文件配置如下
-Xloggc:${目录}/temp_gc.log           (GC日志文件)
-XX:+HeapDumpOnOutOfMemoryError       (内存溢出时生成heapdump文件)
-XX:HeapDumpPath=${目录}              (heapdump文件存放位置)
如果要即时动态生成heapdump文件可以使用jmap命令,jdk6.0已取消了-XX:+HeapDumpOnCtrlBreak配置参数通过ctrl+break的方式。
jmap -dump:format=b,file=temp_heapdump.hprof <pid>

二、HP JVM

-Xverbosegc:file=${目录}/temp_gc.log  (GC日志文件)
-XX:+HeapDumpOnOutOfMemoryError       (内存溢出时生成heapdump文件)
-XX:+HeapDumpOnCtrlBreak              (可以通过ctrl+break组合键动态生成heapdump文件)
-XX:HeapDumpPath=${目录}              (heapdump文件存放位置)

三、IBM JVM

非windows操作系统环境中
-XverboseGClog: ${目录}/temp_gc.log   (GC日志文件)
-Xdump:heap:events=user,file=${目录}/pid%uid%pid.phd
表示可以根据需要通过kill -3 <pid>产生DUMP文件,%uid和%pid为变量

windows操作系统环境中
启动wsadmin,进入wsadmin环境

wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
wsadmin> $AdminControl invoke $jvm generateHeapDump
wsadmin> $AdminControl invoke $jvm dumpThreads

你可能感兴趣的:(jvm)