gpt4 book ai didi

java - 当将 `openjdk:11` 或 `openjdk:8` 与 CGroup 的实验标志一起使用时,是否仍需要 `-Xmx`

转载 作者:太空宇宙 更新时间:2023-11-04 09:48:52 29 4
gpt4 key购买 nike

根据 https://github.com/docker-library/docs/blob/master/openjdk/README.md#make-jvm-respect-cpu-and-ram-limits

它说JDK11已经默认使用-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap

但是,我仍然收到错误 137,并且当我输入 free -h 时,我看到 OOM killer 并且有大量可用内存(超过 1GB)

是否仍需要 -Xmx 来防止 OOM 错误?

最佳答案

这两个参数适用于 JVM 在容器(如 docker 容器)内运行时的情况。这些参数限制容器内资源(CPU 和内存)的使用。

当您创建的对象/实例多于可用堆大小时,会发生内存不足 (OOM) 错误。上面的两个参数限制堆大小...所以如果你创建更多,你仍然会出现OOM错误。

这两个参数与限制堆大小(最大和最小)的 Xmx 和 Xms 选项无关。请注意,JVM 是 VM 的一种形式,您可以指定(至少在理论上)大于可用内存(容器或主机)的 Xmx。

我希望这能回答您的问题。

关于java - 当将 `openjdk:11` 或 `openjdk:8` 与 CGroup 的实验标志一起使用时,是否仍需要 `-Xmx`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55056165/

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