ParNew + CMS垃圾回收过程分析

本文详细分析了正常情况和异常情况下ParNew与CMS垃圾回收的过程。在正常情况下,展示了GC日志解析,包括Minor GC、Major GC的触发时机和执行流程。Major GC由CMS负责,包括多个并发阶段。在异常情况中,解释了concurrent mode failure和promotion failed的原因及后果。文章结尾指出JVM垃圾回收的复杂性,并标记了待解答的问题。
摘要由CSDN通过智能技术生成

1 正常情况

1.1 环境信息

启动参数:

-Xmx:4096M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps \ 
-Xloggc:gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=20M

堆最大为4G,永久代最大为512M,启用CMS进行老年代垃圾回收,ParNew做年轻代垃圾回收。GC日志会打印到bin/gc.log.{d}中,文件最大为20M,最多存储10个文件。

运行参数:

CommandLine flags: -XX:GCLogFileSize=20971520 -XX:InitialHeapSize=1055244992 -XX:MaxHeapSize=4294967296 -XX:MaxNewSize=872415232 -XX:MaxPermSize=536870912 -XX:MaxTenuringThreshold=6 -XX:NumberOfGCLogFiles=10 -XX:OldPLABSize=16 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseGCLogFileRotation -XX:+UseParNewGC

初始堆空间1055244992字节约等于1G,最大堆空间4G,新生代最大空间832M,永久代最大空间512M,年轻代最大晋升年龄阈值

1.2 GC日志解析

// Minor GC
2020-04-14T19:28:29.017+0800: 2.166: [GC2020-04-14T19:28:29.017+0800: 2.166: [ParNew: 274880K->26888K(309184K), 0.0229870 secs] 274880K->26888K(996224K), 0.0231220 secs] [Times: user=0.12 sys=0.03, real=0.02 secs]
2020-04-14T19:28:29.950+0800: 3.098: [GC2020-04-14T19:28:29.950+0800: 3.099: [ParNew: 301768K->23106K(309184K), 0.1368230 secs] 301768K->45676K(996224K), 0.1369380 secs] [Times: user=0.39 sys=0.12, real=0.14 secs]
2020-04-14T19:28:30.611+0800: 3.760: [GC2020-04-14T19:28:30.611+0800: 3.760: [ParNew: 297986K->7433K(309184K), 0.0065780 secs] 320556K->30003K(996224K), 0.0066680 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
// Full GC
2020-04-15T13:51:54.511+0800: 66207.660: [Full GC2020-04-15T13:51:54.511+0800: 66207.660: [CMS: 78706K->52261K(687040K), 0.4142720 secs] 121505K->52261K(996224K), [CMS Perm : 49043K->48806K(49280K)], 0.4146180 secs] [Times: user=0.36 sys=0.03, real=0.42 secs]
// Major GC
2020-04-23T01:07:24.411+0800: 711537.560: [GC [1 CMS-initial-mark: 343521K(687040K)] 344924K(996288K), 0.0041360 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
2020-04-23T01:07:24.416+0800: 711537.564: [CMS-concurrent-mark-start]
2020-04-23T01:07:24.472+0800: 711537.621: [CMS-concurrent-mark: 0.057/0.057 secs] [Times: user=0.18 sys=0.00, real=0.05 secs]
2020-04-23T01:07:24.472+0800: 711537.621: [CMS-concurrent-preclean-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值