Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Docker OpenJDK-Xmx或_Java_Docker_Jvm - Fatal编程技术网

Java Docker OpenJDK-Xmx或

Java Docker OpenJDK-Xmx或,java,docker,jvm,Java,Docker,Jvm,我试图让一个服务在一个容器中运行,但当容器中的服务启动时(它执行一些内存密集型操作),我遇到了OutOfMemoryError:Java堆空间 我正在尝试添加-Xmx1024-Xms1024的选项,但没有成功 我还试图使用 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap 但是,正如文档中提到的,当我运行它时,它会失败,并出现以下错误: Unrecognized VM option 'UnlockExperime

我试图让一个服务在一个容器中运行,但当容器中的服务启动时(它执行一些内存密集型操作),我遇到了
OutOfMemoryError:Java堆空间

我正在尝试添加
-Xmx1024-Xms1024
的选项,但没有成功

我还试图使用

-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
但是,正如文档中提到的,当我运行它时,它会失败,并出现以下错误:

Unrecognized VM option 'UnlockExperimentalVMOptions XX:+UseCGroupMemoryLimitForHeap'
我正在使用的当前
Dockerfile
如下所示

FROM openjdk:8u131

...

...

CMD ["java","-XshowSettings:vm -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap","-jar", "target/my-jar.jar"]

我认为您指定的参数不正确。这:

CMD ["java",
     "-XshowSettings:vm -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap",
     "-jar", "target/my-jar.jar"]
应该是:

CMD ["java",
     "-XshowSettings:vm",
     "-XX:+UnlockExperimentalVMOptions",
     "-XX:+UseCGroupMemoryLimitForHeap",
     "-jar", "target/my-jar.jar"]

使用
CMD[…]
时,需要提供与shell完全相同的参数。这也可能是您无法使
-Xmx1024-Xms1024
工作的原因。

打开jdk 10并向上自动检测cgroup限制,而无需任何附加标志()。此外,它们还允许您通过
MaxRAMPercentage
选项()将最大堆大小指定为该限制的分数