我在Linux平台上运行Java程序并且经常崩溃;在这种情况下,我想自动使用heapdump。
当Java进程遇到" OutOfMemory Error"有没有人自动创建堆转储的脚本/方法在Linux上?
感谢您的帮助。
答案 0 :(得分:5)
要自动进行堆转储,请编辑{installation directory} /bin/setenv.sh并将其添加到JAVA_OPTS:
-XX:+ HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = [堆转储路径]
答案 1 :(得分:3)
查看this page的JVM选项,具体来说:
-XX:HeapDumpPath =。/ java_pid.hprof 堆转储的目录或文件名的路径。管理。 (在1.4.2更新12,5.0更新7中引入。)
-XX:-HeapDumpOnOutOfMemoryError 在抛出java.lang.OutOfMemoryError时将堆转储到文件。管理。 (在1.4.2更新12,5.0更新7中引入。)
答案 2 :(得分:0)
如Oracle文档中所述:
-XX:+ HeapDumpOnOutOfMemoryError 命令行选项告诉HotSpot VM在无法满足Java堆或永久代的分配时生成堆转储。运行此选项没有任何开销,因此它对于OutOfMemoryError需要很长时间才能浮出水面的生产系统非常有用。