求助>zookeeper使用了ParNew+cms,youngGC有时候超过1s>
5回复

zookeeper使用了ParNew+cms,youngGC有时候超过1s



1.zookeeper集群有时候youngGC特别慢,导致zk请求堆积和处理延迟

{Heap before GC invocations=56 (full 3):
 par new generation   total 1258304K, used 1221735K [0x00000006c0000000, 0x0000000715550000, 0x0000000715550000)
  eden space 1118528K, 100% used [0x00000006c0000000, 0x0000000704450000, 0x0000000704450000)
  from space 139776K,  73% used [0x000000070ccd0000, 0x0000000713199d30, 0x0000000715550000)
  to   space 139776K,   0% used [0x0000000704450000, 0x0000000704450000, 0x000000070ccd0000)
 concurrent mark-sweep generation total 2796224K, used 50888K [0x0000000715550000, 0x00000007c0000000, 0x00000007c0000000)
 Metaspace       used 12484K, capacity 12808K, committed 13056K, reserved 1060864K
  class space    used 1354K, capacity 1456K, committed 1536K, reserved 1048576K
2019-12-22T17:05:06.891+0800: 974.563: [GC (Allocation Failure) 2019-12-22T17:05:06.891+0800: 974.563: [ParNew: 1221735K->104649K(1258304K), 1.0011243 secs] 1272623K->170081K(4054528K), 1.0012392 secs] [Times: user=27.87 sys=0.00, real=1.00 secs] 
Heap after GC invocations=57 (full 3):
 par new generation   total 1258304K, used 104649K [0x00000006c0000000, 0x0000000715550000, 0x0000000715550000)
  eden space 1118528K,   0% used [0x00000006c0000000, 0x00000006c0000000, 0x0000000704450000)
  from space 139776K,  74% used [0x0000000704450000, 0x000000070aa825c0, 0x000000070ccd0000)
  to   space 139776K,   0% used [0x000000070ccd0000, 0x000000070ccd0000, 0x0000000715550000)
 concurrent mark-sweep generation total 2796224K, used 65432K [0x0000000715550000, 0x00000007c0000000, 0x00000007c0000000)
 Metaspace       used 12484K, capacity 12808K, committed 13056K, reserved 1060864K
  class space    used 1354K, capacity 1456K, committed 1536K, reserved 1048576K
}
1943 阅读
请先登录,再评论

回复列表

彭成寒6月前

由于你的配置,机器情况,应用特性都未知,单纯的减少YGC的时间,大概可以从这些方面考虑:

1.是否可以增加YGC时的并行度,加快并行处理的速度。
2.如果因硬件原因,并行度比较小,可以尝试增加每个并行线程工作的内存区间,减少工作线程的切换。
3.确定是否晋升的对象都是真的需要晋升,如果对象只是因为YGC频繁发生,满足晋升条件晋升,可以调整参数减少晋升的概率(这可能有很多地方可以调整,例如增大新生代大小,调整对象晋升阈值,调整Surivior空间);如果对象确实需要晋升,则减少新生代的大小
4.研究是否其他的影响GC的因素,例如是否使用了引用,是否开启并发引用处理,软引用的过期时间是否合理等

大空翼6月前

一条gc日志比较难看吧,可以把上下文的gc日志贴多点

微信截图_20191222211638.png

你假笨5月前
回复 goofy:

ygc慢的原因比较难排查,可以看下我在社区里写的那几篇和YGC相关的文章

回复
goofy5月前
回复 艾~海阔天空:

请问,您这个原因分析出来了吗?

回复