一个 JVM 参数引发的频繁 CMS GC( 七 )
看上面的日志 , 你会发现这次 CMS GC 日志跟以往的都不太一样 , CMS-concurrent-mark-start 日志出现后 , 后面的日志都不是按照 CMS GC 的各个阶段打出来的 。 是的 , 后面其实是由于 Allocation Failure 而发生了一次 Young GC , 从而中断了 CMS background collector , 而进行了一次 CMS foreground collector , 有 “concurrent mode failure” 为证 。
也就是说一般的 Allocation Failure 引起的 YoungGC 在这种情况下 , 不会出现频繁 CMS GC , 因此 , 把问题归结到 -XX:CMSScavengeBeforeRemark 参数不为过吧 。
总结本文主要是由于 -XX:CMSScavengeBeforeRemark 参数触发了 Young GC , 但该 YoungGC 并没有成功进行的 , 反而促使 CMS background collector 触发条件满足 , 进而引发了频繁 CMS GC 。
该怎么避免呢【一个 JVM 参数引发的频繁 CMS GC】一时也没有想到很好的办法 , 两个参考方案:
- 去掉 -XX:CMSScavengeBeforeRemark 参数
- 降低 YoungGen 大小 , 加快因 Allocation Failure 而触发正常 Young GC
推荐阅读
- 微软Edge迎来一个新的浮层菜单 用于管理下载进度
- 黑鲨4pro什么时候出多少钱,黑鲨4pro价格参数介绍
- 红米k40pro和iqooneo3哪个好性价比高 参数对比区别评测
- 一加首款可穿戴设备OnePlus Band消息汇总:价格、参数、功能全揭秘
- 一个亮点解读 创维小湃P3 Pro必须要买的理由
- 荣耀V40正式得到确认!参数配置也基本确定!售价或将是惊喜
- 华为认证HCIP-GaussDB-OLTP发布,下一个高级DBA会是你吗
- 又黄一个APP,“品牌收购机”成“没落收割机”,收一黄一
- 教你用Siri来控制电脑:真香
- 华为畅享20se和红米note9哪个好区别在哪 参数对比评测