性能问答>导致JAVA CMS GC 初始化标记暂停时间过长的原因?>
1回复

导致JAVA CMS GC 初始化标记暂停时间过长的原因?



DK7下,Xmx=Xms=106G,Xmn=14G,采用CMS GC ,触发比例82%
在 parnew gc 后,触发 CMS initmark暂停时间 real time 远大于 user time, 达28 sec之久.
日志如下:

T22:23:12.641+0800: 1685326.326: [GC2020-09-10T22:23:12.641+0800: 1685326.326: [ParNew: 11310205K->317323K(12845056K), 0.3698150 secs] 90406602K->79418414K(109314048K), 0.3702030 secs] [Times: user=5.99 sys=0.11, real=0.37 secs]
T22:27:33.344+0800: 1685587.029: [GC2020-09-10T22:27:33.344+0800: 1685587.030: [ParNew: 11327371K->256021K(12845056K), 0.3537650 secs] 90428462K->79400572K(109314048K), 0.3541520 secs] [Times: user=5.90 sys=0.10, real=0.35 secs]
T22:27:33.721+0800: 1685587.406: [GC [1 CMS-initial-mark: 79144550K(96468992K)] 79542099K(109314048K), 28.3768010 secs] [Times: user=0.08 sys=0.10, real=28.38 secs]

请问可能导致这种情况出现的原因会是哪些(parnew gc 后 edge 内存占用已经很少了,收集 root reference应该会很快 )?

2647 阅读
请先登录,再评论

这种情况有可能是,机器磁盘io负载高,由于jvm gc时需要打日志,虽然写操作是写page cache,但是如果要写的块正好需要被回写到磁盘就会阻塞到gc线程

1年前