如果发生了内存泄露,如果好重现,使用JVisualvm,或者jmap,Jprofiler进行Heap Dump,使用MAT进行分析。但不好重现的话,可以打开JVM的HeapDumpOnOutOfMemoryError参数,待到有了Heap Dump再使用MAT等工具分析。
说明:
通过jvm参数-XX:+HeapDumpOnOutOfMemoryError可以让JVM在出现内存溢出时候Dump出当前的内存转储快照。快照格式为java_pid2821.hprof(2821为Java进程号)
参数设置:
-XX:+HeapDumpOnOutOfMemoryError :当内存溢出时触发java.lang.OutOfMemo: Java heap space
-XX:HeapDumpPath=/opt/heap·: 内存溢出时,保存内存快照文件
例子:文章来源:https://www.toymoban.com/news/detail-567711.html
nohup java -jar -server -Xms8g -Xmx8g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/heap.hprof ./test.jar >/dev/null 2>
VisualVm和MAT文章来源地址https://www.toymoban.com/news/detail-567711.html
到了这里,关于堆内存溢出自动生成DUMP文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!