"-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp"
此参数将有助于在达到服务器限制时自动进行堆转储。
http://www.oracle.com/technetwork/java/javase/clopts-139448.html#gbzrr
我可以看到有关上述链接的详细信息,但是," OutOfMemoryError "消息在我的服务器日志时间内打印了很多次。
那么,如果多次出现错误消息,JVM会进行多次堆转储吗?
此致 彼得
答案 0 :(得分:2)
当指定此标志时,oracle jvm仅在第一个OOM上创建堆转储。但是,如果jvm进程仍处于活动状态且响应迅速,则可以手动创建多个堆转储。一点点谷歌搜索:
-XX:+HeapDumpOnOutOfMemoryError not creating hprof file in OOM
答案 1 :(得分:0)
“OutOfMemoryError”错误还有其他原因。
无法创建新线程就是一个例子。
此外,当OutOfMemoryError异常展开堆栈时,可能会释放内存,从而允许应用程序(稍微)恢复而不会崩溃。
答案 2 :(得分:0)
这取决于JVM。我认为Oracle JVM只转储一次。