美文网首页jvm调优
jvm-CMS-优化-老年代过大问题

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

作者: tianlang136520 | 来源:发表于2018-08-02 17:54 被阅读655次

    经过给项目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才会回收这个数据结构。

    相关文章

      网友评论

        本文标题:jvm-CMS-优化-老年代过大问题

        本文链接:https://www.haomeiwen.com/subject/yoalaxtx.html