有人告诉我,我可以将-XX:+HeapDumpOnOutOfMemoryError
参数添加到我的JBoss启动脚本的JVM启动选项中,以便在我们的应用程序中出现内存不足错误时获取堆转储.我想知道这些数据被丢弃的位置?它只是到控制台,还是一些日志文件?如果仅仅是控制台,如果我没有通过控制台登录Unix服务器怎么办?
以下是Oracle的文档所说的内容:
默认情况下,堆转储是在VM的工作目录中名为java_ pid .hprof 的文件中创建的,如上例所示.您可以使用该
-XX:HeapDumpPath=
选项指定备用文件名或目录.例如,-XX:HeapDumpPath=/disk2/dumps
将导致在/disk2/dumps
目录中生成堆转储.
您可以从UNIX控制台查看此转储.
在您放置上述变量之后,堆转储的路径将作为变量提供.
例如:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"
您可以在上述路径中从控制台查看转储.