最新版的JRockit(R28,2010年4月)版本已经支持OOM时将堆内存转储出来,供离线分析使用了。使用的参数跟Sun的JDK类似,通过指定如下的JVM参数运行即可:
-XX:+HeapDumpOnOutOfMemoryError: Enables generation of Java heap dumps on out-of-memory errors
-XX:+HeapDumpOnCtrlBreak: Enables generation of Java heap dumps on pressing Ctrl-Break.
第一个参数是OOM时自动转储,第二个参数是在控制台按Ctrl+Break转储。
注意这个参数和使用jrcmd里面的print_threads,oom_diagnose之类的命令是不同的,后者产生的是标准的文本文件,供人阅读分析的。Heap Dump文件是二进制文件,可以使用MAT一类的离线分析工具来分析系统中可能存在的内存泄漏问题。
没有评论:
发表评论