是否可以取消设置JVM选项?

s5a0g9ez  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(160)

我们的应用服务器OpenLiberty支持配置默认值和覆盖,如www.example.com上所定义https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#jvm-options
选项会依序读取并提供给JVM。如果您提供多个选项,则JVM会看到所有选项。
目前,我们正在为我们的服务器设置一个初始的最小堆大小(通过configDropins/defaults/jvm.options)。我希望可以用JVM的默认值覆盖这个最小堆大小(就像从来没有指定-Xms一样)。
我确认可以通过configDropins/overrides向-Xms传递一个新值,但我真正想做的是覆盖初始设置,使其采用JVM默认值(而不是不同的自定义值)。我尝试在覆盖中设置-Xms(没有值),但它似乎只使用了configDropins/defaults中的值。
Duplicated Java runtime options : what is the order of preference?上有一个很好的相关问题,写着常见的JVM如何处理重复的选项,以及一个答案之外的选项:
批处理文件中经常有嵌套很深的命令行,人们只能在命令行的末尾添加命令,并希望使其成为赢家。
这让我希望,也许我不是唯一一个想要这个特性的人。有人知道是否已经有某种方法可以实现它吗?

xzv2uavs

xzv2uavs1#

老实说,在容器中运行时,不应该设置堆大小。自从Java8以来,通过UseContainerSupport设置就有了内置的支持,它根据容器内存限制来调整可用的堆大小。
如果你想微调,你可以使用-XX:MaxRAMPercentage / -XX:InitialRAMPercentage设置。
这允许您以更动态的方式更改堆大小,而无需重建映像。
更新
基于https://www.ibm.com/docs/en/sdk-java-technology/8?topic=options-xxinitialrampercentageInitialRAMPercentage是种-Xms等价:

-XX:InitialRAMPercentage=N  Set initial heap size as a percentage of total memory  

Note: 
If you set a value for -Xms, the -XX:InitialRAMPercentage option is ignored. 
If you set a value for -Xmx, the -XX:MaxRAMPercentage option is ignored.

相关问题