Docker 在容器中运行作业一小时后,由于内存不足,Java进程被终止

Docker 在容器中运行作业一小时后,由于内存不足,Java进程被终止,docker,circleci,Docker,Circleci,我在CircleCI()中设置了一个运行自动化测试的作业,它工作得很好,但在运行测试一小时后,它达到了内存限制,并突然停止了运行Java/ant作业。那么,有没有办法增加容器内存,使测试可以在容器或其付费功能中运行5-6个小时 我尝试将-JAVA_OPTS:-Xms512m-Xmx1024m放入YAML脚本中,但总体容器内存大小达到了~4GB 参考资料: 日志跟踪: 我们遇到了这个问题。唯一的解决办法是让你的应用程序使用更少的内存。我们遇到了这个问题。唯一的解决办法是让你的应用程序使用更少的内存

我在CircleCI()中设置了一个运行自动化测试的作业,它工作得很好,但在运行测试一小时后,它达到了内存限制,并突然停止了运行Java/ant作业。那么,有没有办法增加容器内存,使测试可以在容器或其付费功能中运行5-6个小时

我尝试将
-JAVA_OPTS:-Xms512m-Xmx1024m
放入YAML脚本中,但总体容器内存大小达到了~4GB

参考资料: 日志跟踪:
我们遇到了这个问题。唯一的解决办法是让你的应用程序使用更少的内存。

我们遇到了这个问题。唯一的解决办法是让你的应用程序使用更少的内存。

菲斯凯本是对的。我认为你提到的集装箱是我们形象的一部分。因此,您可以在启动脚本中添加以下行

# set correct java startup
export _JAVA_OPTIONS="-Duser.home=$HOME -Xmx${JVM_HEAP_XMX}m"
# add docker jvm flags, can maybe removed with JDK9
export _JAVA_OPTIONS="$_JAVA_OPTIONS -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
现在,您可以使用JVM应该使用的兆字节量设置环境变量
JVM\u HEAP\u XMX
,例如

docker run -e JVM_HEAP_XMX=512 ... 

如果要动态确定大小,请查看该脚本。

fiskeben是正确的。我认为你提到的集装箱是我们形象的一部分。因此,您可以在启动脚本中添加以下行

# set correct java startup
export _JAVA_OPTIONS="-Duser.home=$HOME -Xmx${JVM_HEAP_XMX}m"
# add docker jvm flags, can maybe removed with JDK9
export _JAVA_OPTIONS="$_JAVA_OPTIONS -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
现在,您可以使用JVM应该使用的兆字节量设置环境变量
JVM\u HEAP\u XMX
,例如

docker run -e JVM_HEAP_XMX=512 ... 

如果要动态确定大小,请查看该脚本。

您使用的计算机大小是多少?默认的机器大小是4G,并且可以进行8G升级(在Docker或机器类型中)。仅4G-我不知道8G机器。是的。如果您是付费客户,您可以在上请求升级,看起来自从我上次检查以来,他们已经添加了16G!此外,如果您是付费或免费客户,您可以使用8G。那暂时是免费的,但比Docker的速度慢一点。你用的是什么尺寸的机器?默认的机器大小是4G,并且可以进行8G升级(在Docker或机器类型中)。仅4G-我不知道8G机器。是的。如果您是付费客户,您可以在上请求升级,看起来自从我上次检查以来,他们已经添加了16G!此外,如果您是付费或免费客户,您可以使用8G。这暂时是免费的,但比Docker的速度慢一些。请参阅我对fiskeben关于CircleCI中可用的较大机器的评论。请参阅我对fiskeben关于CircleCI中可用的较大机器的评论。