jvm调优

jvm-CMS-优化-老年代过大问题

2018-08-02  本文已影响655人  tianlang136520

经过给项目pops-settlement 内存优化,发现一个现象就是,内存设置老年代和新生代比率:3:1
项目总大小:4G
启动参数:-Xms4g -Xmx4g -XX:PermSize=384m -XX:MaxPermSize=384m -XX:NewSize=800m -XX:MaxNewSize=800m -XX:SurvivorRatio=18 -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:MaxTenuringThreshold=5 -XX:+CMSParallelRemarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrent

导致运行4天后,显现yonggc时间拉高
刚运行:


image.png

运行一天后:


image.png
运行四天后:
image.png

老年代oldgc一次也没执行过(未达到设定的阀值):

image.png

经过查看其它项目发现,oldgc的执行,也会影响yonggc运行times:


image.png

老年代垃圾的回收,会影响新生代内存。

2018-01-23经过查询帖子发现,还有可能是Stringtable存储过多导致的,Stringtable存储的字符串常量,只有oldgc和fullgc才会回收这个数据结构。

上一篇下一篇

猜你喜欢

热点阅读