频繁fullgc 排查思路

频繁fullgc 排查思路?

首先:肯定会有对象频繁的进入老年代才会导致fullgc

哪些对象会进入老年代呢?

1 >15岁(默认)

2 大于 超过s区50%的那部分对象的年龄 的 对象

3 大对象

分析1:大于15岁的对象一般是单例的 spring 管理的那种对象可以暂时忽略

分析2:这种情况可能是年轻代的内存给小了或者S区的内存给小了

分析3:排查是不是有select*大表的这种情况

 

那什么时候回fullgc呢?

1.old内存小于历次ygc流入的平均对象大小

2.ygc后S区也放不下 会进入Old old也放不下

3.内存大小 小于cms垃圾收集器配置的百分比 (cms并发清理的时候会有浮动垃圾)

 

fullgc基本上直接原因就是老年代空间不够了

 

这一点别忘了 是不是 老年代有大量的对象释放不掉 导致老年代空间一直被占了

除了单例的对象 是不是会存在内存泄漏的情况 比如ThreadLocalMap没clear jvm内置缓存没设置过期和大小

 

最最常见的情况就是E区S区的大小设置的不合理

 

cpu负载高?

1.频繁Full gc

2.线程开太多?

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值