gpt4 book ai didi

java - CMS Old GC触发的阈值是多少

转载 作者:行者123 更新时间:2023-11-30 08:44:58 28 4
gpt4 key购买 nike

我们服务器的 JVM 标志(内存)如下所示

-Xms2048m
-Xmx2048m
-Xss512k
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:NewSize=128m
-XX:MaxNewSize=128m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:+HeapDumpOnOutOfMemoryError

我需要找出 Old GC 的确切触发时间,即它是否与已使用的总堆内存百分比有关?

我做了一些负载很大的测试,并使用 visualVMjstat 监控应用程序。但是当实际触发旧 gc 时,我找不到任何模式。有时当 oldgen 仅使用 27.13 % 然后是 76.02 %、92.61 % 等时触发 gc。

有人可以给出一些关于实际触发旧 gc 的提示吗?

我需要找出触发旧 gc 的内存阈值。有了这个,我可以在服务器中设置一些高内存警报警告(正确的设置排除了任何要触发的错误警报)?

这篇文章说 gc 将在旧 gc 使用率默认为 70% 时触发。但在这种情况下似乎不起作用。 How full does the old generation have to be to trigger a major GC cycle?

最佳答案

您链接的另一个问题已经提供了答案:如果您通过 UseCMSInitiatingOccupancyOnly 显式配置它,则并发循环由堆占用触发。和 CMSInitiatingOccupancyFraction选项。

否则,JVM 会使用启发式方法,根据先前收集的执行情况不断调整运行时的阈值。

关于java - CMS Old GC触发的阈值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557644/

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