【问题标题】:How young-generation size will be resized?如何调整年轻代的大小?
【发布时间】:2017-02-06 09:37:11
【问题描述】:

我试图了解用于定义 JVM 堆大小的不同参数。

    <jdkarg value="-Xmx20000M"/>
    <jdkarg value="-Xms10000M"/>
    <jdkarg value="-XX:NewSize=2500M"/>
    <jdkarg value="-XX:NewRatio=1"/>
    <jdkarg value="-XX:MaxNewSize=5000"/>

在这里我知道这些 jdkarg 是什么意思,是什么让我感到困惑,我在某处读到如果我定义 -XX:NewSize -XX:NewRatio 然后同时声明 jvm 将使用 -XX:NewSize 而不是 -XX:NewRatio 分配年轻代大小。

所以在这里我有一些问题:

  • 当我们定义 -XX:NewSize-XX:NewRatio 时,初始年轻代大小将使用 -XX:NewSize 定义,对吗?
  • 当堆大小增加到它的 MAX 在这种情况下 20000M 时会发生什么,那么它如何定义最大年轻代大小,它会使用 -MaxNewSize 还是 -XX:NewRatio或者它们都不会像我一样使用 -XX:NewSize

我尝试了很多谷歌搜索,但没有找到任何结论。 任何有助于一起理解这些 arg 的帮助将不胜感激。

更新:

我得到的输出不符合预期:

 S0C       S1C      S0U     S1U      EC       EU        OC         OU         PC       PU       YGC    YGCT   FGC      FGCT    GCT
426624.0 426624.0  0.0   426624.0 1706752.0 1013097.7 17920000.0 7208855.8  137032.0 82118.0   1952  130.126  24     20.441  150.567

在这里,我将 Old space 设为 17920000,即 17500 MB,将 young space 设为 2500 MB,这是我的初始值。

【问题讨论】:

  • 您应该只添加您知道会有所帮助的调整参数。我建议您坚持使用-Xmx10g -Xmx20g,除非您知道需要其他选项。

标签: java jvm performance-testing jvm-arguments jvm-hotspot


【解决方案1】:

在这里我指出了问题,以便在进一步研究之前可以注意到类似的事情,这导致了这种行为:

理想情况下,这应该是@Oleksandr 提到的行为:

-XX:NewSize 和 -XX:MaxNewSize 都被使用,young gen 将介于这两种尺寸之间。但是当堆大小发生变化时,年轻代的大小不会相应改变。

但是因为我有&lt;jdkarg value="-XX:MaxNewSize=5000"/&gt;,这意味着 5000 字节,这意味着它永远不会将 Young Space 增加到 MaxNewSize,因为 NewSize 已经更大了,设置它的最大值的正确方法@987654322 @。

当我进行此更改时,即将定义的大小添加为 MB,然后它会按预期提供内存分配。

【讨论】:

    【解决方案2】:

    当我们定义 -XX:NewSize 和 -XX:NewRatio 然后初始年轻 生成大小将使用 -XX:NewSize 定义,是否正确?

    NewRatioNewSizeMaxNewSize一起使用会被忽略

    当堆大小增加到它的最大值(在这种情况下为 20000M)时会发生什么, 那么它如何定义最大年轻代大小,它会使用 -MaxNewSize 或 -XX:NewRatio 或它们都不会像我一样使用 -XX:NewSize?

    当同时使用NewSizeMaxNewSize 时,年轻代将介于这两种大小之间。但是当堆大小发生变化时,年轻代的大小不会随之改变。

    Original source

    【讨论】:

    • 我也是这么想的,但令我惊讶的是年轻一代的大小并没有改变,即即使在堆大小达到最大值后,它也与初始年轻代大小相同。
    • 感谢@Oleksandr 我能够找出这种行为的根本原因。
    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 2014-07-03
    • 2014-12-23
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多