一、heap oom 堆内存oom
原因:
1、申请过大内存,如大数组
2、堆内存分配过小,maxsize
3、大量内存泄露,如静态变量,链接资源未释放
解决:
1、优化分配内存空间
2、适当增加内存分配
3、优化内存泄露
二、metaspace oom 元空间泄露
原因:
1、大量cglib反射生成对象
2、类加载未正确释放
解决:
1、优化大量生成对象
三、频繁申请直接内存分配,但未释放 dict
解决:减少直接内存分配
四:unable to Create native methon,线程栈内存过大
原因:
1、操作系统限制线程数
2、线程栈内存过大
解决:
1、使用线程池
2、操作系统线程数增大
3、xss增大
五、
java.lang.OutOfMemoryError: GC Overhead limit exceeded
触发原因:GC 频繁执行但回收效率极低(如 98% 时间用于 GC,仅回收 2% 内存)。
典型场景:堆内存几乎被占满,且存在大量无法回收的对象(内存泄漏)。
解决方案:
检查内存泄漏或优化 GC 策略(如调整堆大小、更换垃圾回收器)。