如何捕获HeapDumpOnOutOfMemoryError

时间:2017-03-27 05:10:09

标签: java jvm tomcat7

我已经在tomcat 7.0.55中部署了一个应用程序进行测试。我想捕获" HeapDumpOnOutOfMemoryError"正在发生与否。以下是我的JVM参数。

JAVA_OPTS =" -server -Xms512M -Xmx2048M -XX:PermSize = 256m -XX:MaxPermSize = 512m -XX:+ UseConcMarkSweepGC -XX:+ UseParNewGC -XX:ThreadStackSize = 512 -XX:+ HeapDumpOnOutOfMemoryError -XX :HeapDumpPath = /应用/转储/"

我没有在目录下看到任何文件。它是在目录下创建文件还是我手动创建要追加的文件?

2 个答案:

答案 0 :(得分:0)

您可以按照以下方式使用它:

-XX:+ HeapDumpOnOutOfMemoryError -XX:HeapDumpPath =

如果您知道进程ID,也可以使用jmap手动生成内存映射:

jmap -J-d64 -dump:format = b,file =

您可以使用JHat分析转储。

jhat"转储文件的路径"。

默认情况下,堆转储是在VM的工作目录中名为java_pid.hprof的文件中创建的,如上例所示。您可以使用-XX:HeapDumpPath =选项指定备用文件名或目录。例如-XX:HeapDumpPath = / disk2 / dumps将导致在/ disk2 / dumps目录中生成堆转储。

答案 1 :(得分:0)