当前位置: 首页 > Java > 正文

某应用cms gc非常频繁,并且很容易出现concurrent mode failure造成Full GC

1 星2 星3 星4 星5 星 (暂无评分)
Loading ... Loading ...
baidu_share

解决过程:
1、从gc日志来看,cms gc每次在旧生代使用才到18%左右的时候就触发了,而设置的触发比率是80%,并且不允许JVM自行触发;

2、每几次cms gc还会偶尔出现concurrent mode failure的现象,看了下,这时旧生代的空间是非常充足的;

3、根据cms gc的触发机制,猜测是permGen的问题造成的,于是通过jstat -gcutil看了下permGen的占用比例,果
然过一会就超过下92%(不过这里有个问题,就是permGen其实是还没达到MaxPermSize的,看来在cms gc的情况下,maxPermSize要采用不同策略);

4、于是适当的调大permGen,不过仍然没有解决,原因是permGen增长实在太快了;

5、应用方发现有地方会不断的创建classLoader,加载class,因此导致了permGen的增长,修改后问题解决。

总结:
CMS GC的日志其实打的有些问题,应该把cms gc触发时的原因输出下;
另外就是在大部分情况下,只要不是cms gc触发的比例设置的太有问题,如果cms gc频繁或full gc频繁都是应用本身的问题造成的。

本文固定链接: http://www.chepoo.com/application-cms-gc-cause-concurrent-mode-failure.html | IT技术精华网

某应用cms gc非常频繁,并且很容易出现concurrent mode failure造成Full GC:等您坐沙发呢!

发表评论