Docker stack task: non-zero exit (137) OOM

使用docker stack deploy部署的程序出现:task: non-zero exit (137),并自动重启。(一般出现在部署的java程序中)

造成该问题的原因一般有下面几种情况:
1. 通过docker stop ,或者kill -9 会出现 exit code 137

2. OOM,内存不足导致的退出,通过 journalctl -k | grep -i -e memory -e oom 查看系统出现的oom事件

    一般需要确定是否是内存不足导致的退出。

   本文中出现该问题的原因是docker容器启动时设置了最大内存限制,而容器中java程序运行所需内存设置的数值大于等于容器配置的最大内存,导致程序运行一段时间后自动重启。

参照:exit code 137

docker 中 jvm内存往往出现大于xmx问题,除了参数优化外,还可以使用openj9 虚拟机(JVM的另一个实现)内存占用会减少很多。

一般jvm异常退出,配置了oom dump但没有dump文件,gc日志没有异常,要考虑内存不足被系统kill了。

参考:

openj9

openjdk-docker

jvm arg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值