GC回收时常见的异常

2023-02-01  本文已影响0人  _Irving
报错一:
[ParNew (promotion failed): 320138K->320138K(353920K), 0.2365970 
secs]42576.951: [CMS: 1139969K->1120688K(2166784K), 9.2214860 secs] 
1458785K->1120688K(2520704K), 9.4584090 secs]

解决办法:
1、增大救助空间
增大救助空间就是调整-XX:SurvivorRatio参数,这个参数是Eden区和Survivor
区的大小比值,默认是 8,也就是说 Eden 区是 Survivor 区的 8 倍大小,要注意
Survivo是有两个区的,因此Surivivor其实占整个young genertation的1/10。
调小这个参数将增大 survivor 区,让对象尽量在 survitor 区呆长一点,减少进
入年老代的对象
2、增大年老代或者去掉救助空间
去掉救助空间的想法是让大部分不能马上回收的数据尽快进入年老代,加快年老
代的回收频率,减少年老代暴涨的可能性,这个是通过将-XX:SurvivorRatio 设
置成比较大的值(比如 65536)来做到

报错二:
 [GC 90010.628: [ParNew: 261760K->261760K(261952K), 
0.0000350secs]90010.628: [CMS (concurrent mode failure)]

解 决 办 法 是 需 要 减 少 young 、 增 加 old 的 大 小 , 或 者 使 用
-XX:CMSFullGCsBeforeCompaction 并设置较小的值,提高 full gc 后压缩 old
的频次,避免 young 大对象无法晋升到 old

上一篇下一篇

猜你喜欢

热点阅读