堆内存溢出自动生成DUMP文件

时间:2025-02-18 07:55:15

如果发生了内存泄露,如果好重现,使用JVisualvm,或者jmap,Jprofiler进行Heap Dump,使用MAT进行分析。但不好重现的话,可以打开JVM的HeapDumpOnOutOfMemoryError参数,待到有了Heap Dump再使用MAT等工具分析。

说明:
通过jvm参数-XX:+HeapDumpOnOutOfMemoryError可以让JVM在出现内存溢出时候Dump出当前的内存转储快照。快照格式为java_pid2821.hprof(2821为Java进程号)

参数设置:
-XX:+HeapDumpOnOutOfMemoryError :当内存溢出时触发: Java heap space
-XX:HeapDumpPath=/opt/heap·: 内存溢出时,保存内存快照文件

例子:

nohup java -jar -server -Xms8g -Xmx8g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/ ./ >/dev/null 2>

VisualVm和MAT