JVM中产生“concurrent mode failure”导致FullGC的原因

原因:
【1】老年代中存活的数据太大,以致老年代没有足够空间支持分配,即导致concurrent-mode-failure
【2】如果长时间频繁出现,有可能是老年代设置太小或者CMSGC后没有进行压缩的原因导致
【3】应用本身行为变化,导致JVM无法充分的预估新晋升对象的大小。(如:突然有一个非常大的对象,以致新生代无法存放,而老生代空间虽然大于平时预估对象大小,但是此对象老生代还是无法存放)

解决方案:
一般情况下是第三种原因导致,如果出现第一,二种原因时,可以相应的调大老年代的大小,增加压缩参数:
-XX:+UseCMSCompactAtFullCollection,调小-XX:CMSInitiatingOccupancyFraction的值,以便CMSGC及时进行。
原文地址:
https://blogs.oracle.com/jonthecollector/entry/what_the_heck_s_a 

 

串行标记清楚VS并发标记清除cms_gc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值