首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用带有CGroups的实验标志的` `openjdk:11`或` `openjdk:8`时,仍然需要`-Xmx`

当使用带有CGroups的实验标志的` `openjdk:11`或` `openjdk:8`时,仍然需要`-Xmx`
EN

Stack Overflow用户
提问于 2019-03-08 11:08:33
回答 1查看 471关注 0票数 1

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

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

然而,我仍然得到一个错误的137,我看到一个OOM杀手,当我输入free -h时,有大量的内存可用(超过1 1GB

是否仍然需要-Xmx来防止面向对象模型错误?

EN

回答 1

Stack Overflow用户

发布于 2019-03-08 12:00:01

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

当您创建的对象/实例超过可用堆大小时,会发生内存不足(OOM)错误。上面的两个参数限制了堆的大小... ( The heap-size ...因此,如果您创建更多,您仍将OOM错误。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55056165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档