-XX:+HeapDumpOnOutOfMemoryError有人告诉我,当我们的应用程序出现内存不足错误时,我可以将参数添加到我的 JVM 启动选项到我的 JBoss 启动脚本中以获取堆转储。我想知道这些数据在哪里被转储?它只是到控制台,还是到某个日志文件?如果只是到控制台,如果我没有通过控制台登录到Unix服务器怎么办?
-XX:+HeapDumpOnOutOfMemoryError
以下是Oracle 文档的内容:
默认情况下,堆转储是在 VM 工作目录中名为 java_pid .hprof 的文件中创建的 , 如上例所示。您可以使用该选项指定替代文件名或目录-XX:HeapDumpPath=。例如-XX:HeapDumpPath=/disk2/dumps 将导致在/disk2/dumps 目录中生成堆转储。
-XX:HeapDumpPath=
-XX:HeapDumpPath=/disk2/dumps
/disk2/dumps