gpt4 book ai didi

java - 设置-XX :MaxRam

转载 作者:IT王子 更新时间:2023-10-28 23:38:04 27 4
gpt4 key购买 nike

据此link ,有一个选项可以手动设置 MaxRamSize 以限制 JVM 不使用超出此范围的内存。但我没有看到任何相同的文件。我从来不知道这一点。有没有这样或类似的东西?PS。我知道并且我不想设置堆/堆栈/元空间/ native 内存大小。我只是想知道是否有整体内存限制选项。

尝试它并没有帮助,因为它出错了:

Improperly specified VM option 'MaxRAM=1073741824B'
Could not create the Java Virtual Machine.
A fatal exception has occurred. Program will exit.

事实据此link open-jdk 似乎有这些选项。另一个link我发现我相信设置堆大小的点。这又不是在寻找。但我猜这是给 Oracle 的。

为什么我正在寻找这种在容器(如 Docker)内运行应用程序并防止应用程序被 OOM Killer 杀死的选项。我相信如果有这样的 java 应用程序设置会出错或崩溃并出现 java.lang.OutOfMemoryError 而不是容器被终止。

我的假设和理解可能完全错误。这个问题也可能是完全错误的和无关紧要的。但是,当然,询问是前进的方向:)。

最佳答案

Why I'm looking for this kind of an option to run the application inside a container (Like Docker) and prevent the application from being killed by the OOM Killer.

这正是您正在寻找的选项。此外,它作为 JDK-8170888 的一部分与 cgroups (~docker) 正确集成。 .请注意,此标志不会阻止 JVM 分配比其值更多的内存,而是给出提示“我知道我的物理 RAM 限制为 X,请在 X 内分配”,因此 JVM 将在 Java 堆和 native 内存之间共享此值。但如果例如你的应用程序有 native 内存泄漏或类加载器泄漏,那么无论如何都会达到这个限制。

JVM 提示 MaxRAM=1073741824B 因为它最终不期望 B,它应该被声明为 -XX:MaxRAM=1073741824。见 the description标志的:Real memory size (in bytes) used to set maximum heap size.

关于java - 设置-XX :MaxRam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52495429/

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