CMS 升级到G1遇到RSS内存泄漏问题

一、背景说明
       
伴随着JDK版本不断攀升,已逐步将项目中JDK由1.7升级到1.8,偶然发现G1 GC相比CMS加入了一些新特性,像并行独占式运算,指定停顿目标时间,减少空间碎片等。最终决定将项目中使用的CMS升级为G1,在升级过程中遇到RSS内存泄漏问题。

二、问题说明
        
在将项目的GC升级为G1后,yong GC可正常执行,各项指标正常,但是java进程的RSS随着时间的推移持续增长,具体G1 的JVM配置如下所示:(4核CPU,8G内存Docker)

-Xmx6g -Xms6g -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:G1HeapWastePercent=5 -XX:MaxGCPauseMillis=500  -XX:G1MaxNewSizePercent=65  -XX:InitiatingHeapOccupancyPercent=20 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 -XX:G1MixedGCLiveThresholdPercent=60 -Dfile.encoding=UTF-8 -XX:+UseStringDeduplication -XX:+PrintGCDetails -XX:+PrintGCDateStamps   -XX:+PrintAdaptiveSizePolicy   -Xloggc:/export/Logs/gc.log

RSS:Resident Set Size (常驻内存集) 表示的是linux中该进程实际使用物理内存大小,其中RSS=使用堆内存+使用栈内存+共享库中内存。

三、问题排查

1)由于项目特点导致以上G1配置在项目中使用并不会触发Full GC或者Mixed GC,大部分对象都未挺过young GC,仅有很少一部分会升级到老年代,具体GC日志如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值