Dokcer運行Nacos容器自動退出問題

Dokcer運行Nacos容器自動退出問題

參考博文

學生黨,租的雲伺服器,2核2G。使用Docker運行Nacos容器的時候發現總是自動退出。Nacos日誌裡面沒有明顯的報錯資訊。查了一下是記憶體溢出錯誤,指令如下

journalctl -k | grep -i -e memory -e oom

發生了OOM錯誤,自動殺死了相關進程

又重新看了下Nacos日誌,如下圖所示,發現堆記憶體設置的太大了,初始堆記憶體Xms設置的1G,最大堆記憶體Xmx設置的1G,年輕代Xmn設置的512M。

問題找到了,將JVM堆記憶體設置小即可

我用的是 docker-compose運行Nacos相關服務的。Nacos相關部分的yml程式碼如下所示

version: "3.2"

services:
  nacos:
    image: nacos/nacos-server
    environment:
      - MODE=standalone
      - JVM_XMS=64m
      - JVM_XMX=64m
      - JVM_XMN=16m
    ports:
      - "8848:8848"

啟動完了記得再看下Nacos日誌是不是按自己配置的記憶體來的,如果沒變,應該就是yml裡面的格式不對,再核對核對自己寫的配置文件對不對。再重新運行配置文件後,我們查看Nacos日誌,發現配置生效

再查一下運行中的Docker容器

docker ps

沒有自動退出。但是又出了新的問題。nacos雖然不會自動退出了,但是日誌又報堆記憶體溢出了,報錯的圖我忘記截了,大家知道java堆記憶體溢出即可

查一下nacos使用記憶體,使用指令

ps -aux|grep nacos

發現其佔用大概300多M的物理記憶體。然後就按前面的方式重新調整一下堆記憶體就可以了。

Tags: