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的另一个实现)内存占用会减少很多

参考:

openj9

openjdk-docker

jvm arg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章