性能问答>Young GC毛刺问题>
1回复

Young GC毛刺问题



最近遇到个奇怪的问题:
1. 使用Oracle JDK8-171线上服务遇到Young GC偶现毛刺,可能一个小时,毛刺一般在100ms-200ms之间出现大概5-10次,持续时间也很短,非业务高峰时段。
2. 更换AliJDK后,开启Young GC日志,居然极其平滑,再**刺出现,最高不超过40ms
3. 未果,继续更换Oracle JDK8-171,继续出现100ms毛刺
4. 开启引用处理日志,耗时并不明显,怀疑是CardTable影响,于是通过jmap -histo:live主动触发full gc,然而不出1小时,younggc继续出现100ms以上毛刺
5. 大家帮忙看看可能是什么原因,或者对于Young GC排查一般有什么好手段?

关键GC参数如下, JDK版本Oracle JDK8-171:
-Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=256m -Xss256k 
-XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC 
-XX:+UseCMSInitiatingOccupancyOnly 
-XX:CMSInitiatingOccupancyFraction=70 
-XX:+CMSScavengeBeforeRemark 
-XX:+ParallelRefProcEnabled

补充信息:
Par Survivor Space:10M左右


minor gc的最大时长


minor gc的平均时长

855 阅读
请先登录,再评论

看你的图规律性也不是很强,alijdk据我所知应该也没有改过parnewgc,所以大概率还是怀疑是不是跟业务流量有关,-XX:+PrintTenuringDistribution 打印下晋升详情看下,对比时间看是不是暂停长的时候回收效率比较低,存活对象比较多

14月前