内存溢出查看

(1)如果使用Oracle JVM也就是标准的SUN JVM(SUN已被oracle收购)
当内存溢出时生成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>

如果报错可以尝试以运行tomcat的用户来运行jmap,同时在启动tomcat项中加上以下参数
-XX:+StartAttachListener

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

(3)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

猜你喜欢

转载自wen19851025.iteye.com/blog/2244804
今日推荐