G1收集器对CPU负载的影响大吗?
jdk版本1.8.0_74-b02,线上两台服务器都是4核8G一样的配置,尝试使用两种不同的垃圾收集器。使用的监控工具是pinpoint,统计过去12小时。
G1
参数
-Xmx5440M -Xms5440M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC -XX:MaxGCPauseMillis=300
-XX:+ParallelRefProcEnabled
CPU和内存负载
垃圾收集情况
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 100.00 12.39 53.89 87.89 83.63 1868 157.113 0 0.000 157.113
CMS
参数
-Xmx5440M -Xms5440M -Xmn2720M -XX:MaxMetaspaceSize=512M
-XX:MetaspaceSize=512M -XX:SurvivorRatio=4
-XX:-UseAdaptiveSizePolicy -XX:+UseConcMarkSweepGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=70
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
-XX:+CMSClassUnloadingEnabled
-XX:+ParallelRefProcEnabled
-XX:+CMSScavengeBeforeRemark
垃圾收集情况
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 24.58 8.10 48.70 87.46 83.38 3519 98.717 6 0.583 99.300
G1收集的次数大约是CMS的两倍,收集时间比CMS要短。但是使用G1的机器CPU负载是CMS机器的好几倍,我想问一下G1对CPU负载的影响有这么大吗,还是G1的参数还有优化空间?