gpt4 book ai didi

java - Java Xmx 和 Docker 容器 RAM 大小之间还有多少余量?

转载 作者:行者123 更新时间:2023-12-01 14:27:53 25 4
gpt4 key购买 nike

我 100% 了解 JVM 的陷阱以及在 JVM 世界中为了解容器的人体工程学/资源而取得的进步/进步。另外,是的,我知道 Java 在默认情况下会尝试分配它运行的环境中可用 RAM 的 1/4...

所以我有一些想法和问题。我制定了 50/50 规则。如果我的应用程序需要 1GB 的 Xmx,那么我创建了 2GB 的容器,它为 JVM 开销和任何容器/交换的东西提供了另外 1GB 的 RAM(虽然不确定交换在容器中是如何真正工作的)。

所以我在想,如果我的应用程序需要 6GB 的 Xmx,我真的需要创建 12GB 的容器还是可以使用 7GB 或 8GB 的​​容器?当涉及到 RAM 时,我们需要在容器内部留出多少空间?

最佳答案

如果您的容器专用于 JVM,则不需要使用百分比。

您需要知道您需要多少 java 堆——在本例中为 6GB——以及其他所有东西需要多少,看起来您已经证明它小于 2GB。

然后把它们加起来。在这种情况下,8GB 的​​容器应该没问题。但是请注意,堆栈和堆内存是分开的,因此如果您需要同时运行大量线程,请不要忘记为每个线程添加 1MB 的堆栈空间(或您使用 -Xss 设置的任何内容)

另外,我真的建议将最小和最大 Java 堆大小设置为相同的值——在这种情况下为 6GB。然后你可以保证当 Java 尝试增加堆时不会有任何意外。

关于java - Java Xmx 和 Docker 容器 RAM 大小之间还有多少余量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354048/

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