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

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