gpt4 book ai didi

tomcat - 我应该设置 MaxMetaspaceSize 吗?

转载 作者:行者123 更新时间:2023-11-28 21:44:07 25 4
gpt4 key购买 nike

所以,在询问了this之后问题,很快就清楚重要的问题不是“我怎样才能”,而是“我应该”吗?

我们有客户说我们正在从 Java7 迁移到 Java8(使用 Tomcat7)。 Java7 需要设置 -XX:MaxPermSize由于个人需要和使用,一些客户已将其最大值增加到安装程序默认设置之上

我应该为定义了自定义最大值的客户设置 -XX:MaxMetaspaceSize(到之前的 -XX:MaxPermSize 设置) ?那么新安装呢?我们应该设置 -XX:MaxMetaspaceSize 吗?

这样的决定有哪些利弊?

最佳答案

正如我对上一个答案的评论,对这些内存池设置限制的原因是不同的。

如果您的用户之前增加 MaxPermSize 高于默认值,这可能是为了避免 CMS 的 Full GC/并发模式失败,或者因为他们的应用程序确实需要大量的 perm gen 空间。

将元空间限制从其有效的无限默认值降低将有一个完全不同的目的:避免无限制的元空间增长。

问题在于,这只是一个上限。实际提交的,即 current 元空间大小将更小。事实上,有一个名为 MaxMetaspaceFreeRatio 的设置(默认为 70%),这意味着实际元空间大小永远不会超过其占用率的 230%。

为了让它增长,它首先必须填满,强制垃圾收集(元空间已满)以尝试释放对象,并且仅当它不能满足其 MinMetaspaceFreeRatio(默认 40%)时目标是在 GC 周期后将当前元空间扩展到不超过占用率的 230%。

因此在实践中,除非应用程序不断泄漏类加载器/类或生成大量动态代码,否则实际元空间大小应该稳定在与其实际需要相关的范围内。

TL;DR:可能有限制元空间大小的原因,但它们可能与设置 perm gen 大小的最初原因不同。因此,应该重新评估需求。

关于tomcat - 我应该设置 MaxMetaspaceSize 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455644/

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