关于fullGC的总结

1. 描述

  • 相对的是youngGC
  • 源于Java堆的内存结构:分代,新生代和老年代
  • fullGC即在新生代和老年代都进行垃圾回收

2. fullGC的影响

GC过程中导致服务不可用,降低吞吐率

3. 如何降低fullGC带来的影响

fullGC长起来可达到5~6s

从降低fullGC频率和减少fullGC时长的角度,考虑降低其带来的影响

  • 减少fullGC时长
  • 降低fullGC频率

具体的参数调整,比如:

  1. 垃圾回收器的选择上:parallelOld多线程一般比serialOld的单线程回收,能加快GC进度,当然也要结合具体机器配置;CMS关注GC停顿时间,PS关注吞吐率,CMS的GC过程大部分与用户线程并发,只有很短暂的停顿,而parallelOld是STW的,综上,优先选择CMS;
  2. 垃圾回收器参数:parallelOld收集器,设置合理的GC的并行线程数;CMS收集器通过提高老年代使用比例触发fullGC的参数,降低GC频率,但触发阈值过高,有担保失败反而增大GC时间的风险,因为CMS失败后,会使用默认的serialOld收集器重新回收;另外CMS默认使用标记-整理方法(尽管它的名字是mark-sweep),相对标记-清除必然增加了GC时长,但标记-清除算法会产生空间碎片,当大对象无法分配内存时可能会触发一次fullGC,所以可以选择折中的办法,设置在进行一次标记-整理的fullGC之前,先进行m次标记-清除的fullGC这个参数;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值