目录
参考
【JVM】八、OOM异常的模拟
MAT工具分析Dump文件(大对象定位)
用arthas排查java服务内存占用过高 arthas堆外内存分析
Java内存溢出OOM之dump分析
java项目线上出现OOM问题定位看这篇文章就够了
工具
MAT(Memory Analyzer)
下载https://eclipse.dev/mat/downloads.php
注意大部分需要jdk17以上,MemoryAnalyzer-1.10.0.20200225-linux.gtk.x86_64可适配jdk1.8 ,
OutOfMemoryError 是 Java 虚拟机(JVM)抛出的一种错误,表示程序在尝试分配对象时无法获得足够的内存。这通常是由于应用程序内存泄漏、内存溢出或者程序需要的内存超过了 JVM 的限制所引起的。
一、产生原因
内存泄漏: 未被使用的对象或者引用未被正确释放,导致堆积的对象占用了大量内存。
无限循环或递归: 程序中存在无限循环或递归调用,导致堆栈空间不断增长。
内存资源耗尽: 应用程序需要的内存资源超过了 JVM 配置的最大堆大小。
原文链接:https://blog.csdn.net/TreeShu321/article/details/135255821