gpt4 book ai didi

java - 为什么垃圾收集器没有比个位数的堆空闲百分比更快地进行更积极的垃圾收集?

转载 作者:搜寻专家 更新时间:2023-11-01 03:26:25 24 4
gpt4 key购买 nike

这些是我在 WebLogic 11g 中的 Sun Hotspot 1.6 JVM 堆设置:

-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2

我在 24 小时的 JVM 无堆百分比图表中看到的基本上是无堆百分比以缓慢的速度下降,直到我们达到大约 9%(大约需要 24 小时)。然后系统运行看起来像完整的 gc,并回到 97%。

是否有一些我应该添加/修改的设置会告诉 JVM 比我们低于 10% 堆空闲时更快地执行此完整 GC?例如一些比率设置?

它不会导致问题,直到我们获得 9% 的免费,但它使监控/警报更加困难。理想情况下,我们希望始终保持高于 30% 的免费率,这样如果我们下降到那些个位数,我们就知道存在某种问题,例如内存泄漏。

最佳答案

结合其他 stackoverflow 文章找到了答案。

-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=N

其中 N 大致是占用的百分比将触发完整的 GC。默认值为 ~92,这就是为什么我看到完整 GC 的空闲率为 9%。将它切换到 65 适用于我的用例。一个完整的 GC 发生了 ~ 35% 现在免费。

关于java - 为什么垃圾收集器没有比个位数的堆空闲百分比更快地进行更积极的垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com