程序员

jvm老年代设置过大导致yonggc响应越来越高

字号+ 作者:小虾米 来源:未知 2019-10-17 09:34 我要评论( )

经过给项目pops-settlement 内存优化,发现一个现象就是,内存设置老年代和新生代比率:3:1 项目总大小:4G 启动参数:-Xms4g -Xmx4g -XX:PermSize=384m -XX:MaxPer......

经过给项目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时间拉高
刚运行:

运行一天后:

运行四天后:

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

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

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

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

转载请注明来源网站:www.itxm.net谢谢!

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • java虚拟机JVM是重量级的吗?

    java虚拟机JVM是重量级的吗?

    2017-03-14 09:15

  • 最新Java9上线时间表,居然推迟了4个月

    最新Java9上线时间表,居然推迟了4个月

    2016-12-29 12:37