简单分析各种JAVA内存溢出(OOM)

1,java.lang.OutOfMemoryError:Java heap space

堆空间内存溢出

常见原因:

  1. 堆空间不足(根本原因)
  2. 数据量峰值,某个时间段数据量突然达到峰值,大于设计时的阈值
  3. 内存泄漏,不能回收的内存一直累积(比如局部变量一直增多)

2,java.lang.OutOfMemoryError:GC overhead limit exceeded

应用程序花费超过80%的时间用来做GC并且回收了不到2%的堆内存

常见原因:

堆内存一直增加,GC一直在工作,占用100%CPU

3,java.lang.OutOfMemoryError:Permgen space

持久代内存被耗尽(JDK8已经移除永久代)

常见原因:

  1. 加载了太多的类(因为持久代中主要存储每个类信息例如:类加载器引用运行时常量池(所有常量、字段引用、方法引用、属性)字段(Field)数据方法(Method)数据方法代码方法字节码等等)
  2. 重新部署时没有完全清除上次永久代残留

4,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值