我应该使用哪个 JVM 参数来指示 JVM 开始垃圾收集

Which JVM parameter should i use to instruct JVM to start Garbage collection

我注意到,在我将我的应用程序服务器从 Oracle JDK 移动到 SAP JVM 后,垃圾收集发生在堆大小的 ~70%-80% 处。早些时候在使用 Oracle JDK 时,当堆大小达到 ~50% 时,如果没有任何额外的配置,就会发生这种情况。

我正在尝试了解如何指示 JVM 在 50% 时执行 GC。我还没有尝试过以下选项,但我需要了解如果我使用它们会产生什么效果:

MinHeapFreeRatio
MaxHeapFreeRatio

我当前的 JVM 属性:

/sapjvm1.8.0_181/jre/bin/java -server -Xmx20G -Xms20G -XX:+DisableExplicitGC -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+PrintGCDateStamps -XX:+PrintGCDetail

如果有人能帮助指导我,我将不胜感激。

尝试-XX:InitiatingHeapOccupancyPercent=50

MinHeapFreeRatioMaxHeapFreeRatio 影响堆增长和收缩的积极程度。由于您设置了 Xmx=Xms,您可能不希望调整堆大小。