求助>生产环境ygc 1分钟一次,fgc1小时一次,求大神帮忙看看问题>
8回复
6天前

生产环境ygc 1分钟一次,fgc1小时一次,求大神帮忙看看问题



我的服务是api接口,io密集型的,本地用了本地缓存发布pgc内容,然后每个请求都会用clone方式copy pgc内容,然后设置自己的是否订阅是否收藏等信息,jvm配置如下,系统为8核16g,centos6
-server
-Xmx3G
-Xms2G
-Xmn2G
-XX:+DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=80
-Xloggc:/home/hottopic/logs/ts-cc-api/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintTenuringDistribution
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/hottopic/logs/ts-cc-api/java_heapdump.hprof

gclog见附件gc.log

246 阅读
请先登录,再评论

回复列表

lincoln6天前

尝试着说说,不一定对:
1、这个old初始大小如果是1g,估计触发的会少一些
image.png
2、你这个触发cms都是老年代占用到了80%
image.png
3、还有你这个yong(2g)比old(1g)都大,不知道有没有啥问题。可以试试优化后的参数:https://opts.share.perfma.com/result/optimize/D06Kw

Loubobooo5天前
回复 lincoln:

第一点有问题,默认的old_size=Xmx-Xmn是对的,但却不是一上来初始就是1g的,如果开启了UseAdaptiveSizePolicy,并且也没有设置初始容量的话,不一定就是1g的

回复
Mr.Win6天前
回复 lincoln:

3q,我试试

回复
墨书6天前

GC都算正常,没啥问题

墨书3天前
回复 Mr.Win:

几百毫秒要看具体你们应用是否可以忍受,通常情况下已经挺高了,也要看具体的GC日志来综合判断

回复
Mr.Win6天前
回复 墨书:

我看remark平均100ms以上有时候几百毫秒,这个会不会影响系统

回复
墨书6天前
回复 Mr.Win:

CMS本身没有这种一小时触发一次的机制,只要CMS的init和remark的耗时不长,就没啥问题

回复
查看更多