JVM参数之SurvivorRatio和NewRatio

1、SurvivorRatio:

      1.1、新生代2个Survivor区和Eden区的比值,默认值为8;即Eden区:From区:To区 = 8: 1:1

      1.2、调小SurvivorRatio会增大from和to的空间大小,减小Eden空间; 调大SurvivorRatio会减小from和to的空间,增大Eden空间;

               

2、NewRatio:

       新生代(Eden + 2*Survivor)与老年代(不包括永久区)的比值,JDK8的默认值为2;公司的JVM用的就是默认值(在JDK8下面观察的)

3、计算示例:

      新生代 : 老年代 = 682.5 :1365.5 = 1 :2,新生代 + 老年代 = 682.5 + 1365.5 = 2048;

      Eden :From :To = 512.5 :85 :85 = 6 :1 :1    (示例中是经过修改的)

      

4、注意事项:

       4.1、正常来说建议直接使用默认值。如果对代码比较了解,知道代码中变量的使用情况,并且对系统运行观察一段时间后,在必须调优满足吞吐量和性能的情况下才去调值;

       4.2、如果通过比例来设置值达不到想要的效果,可以通过设置NewSize(新生代指定大小)和MaxNewSize(新生代最大上限)来满足你的条件,这个是把值直接固定为你想要的值;比如在促销系统的广告语系统就是通过此方式来设置的;(需要注意的是:newSize应该小于-Xms值,MaxNewSize-应该小于Xmx值)

 

posted @ 2020-09-17 20:51  晓等  阅读(6147)  评论(0编辑  收藏  举报