在发生内存溢出错误 java.lang.OutOfMemoryError
时, JVM自动执行堆内存转储,以方便事后进行排查和分析。
JVM提供了一个命令行启动参数 HeapDumpOnOutOfMemoryError
, 使用的格式为:
java -XX:+HeapDumpOnOutOfMemoryError
- 如果不用
HeapDumpPath
选项指定转储路径,则会自动保存到启动目录下,文件名的格式为:
java_pid<pid>.hprof
- 指定
HeapDumpPath
参数的使用示例如下:
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-or-dir-path>
对于某个应用服务,启动脚本中设置内存溢出转储路径为/opt/logs/app,文件名为heapdump.hprof。如下:
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/tech/java/278114.html