1.實體記憶體不夠
執行 du -h --max-depth=1 指令,看具體哪個檔案夾占用記憶體過高,一般是日志,删除即可。
2.運作記憶體不夠
2.1
top 指令 看記憶體占用情況
若buff/cache占用過高,則執行以下指令清緩存(需ROOT權限)
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab配置設定器中的對象(包括目錄項緩存和inode緩存)。slab配置設定器是核心中管理記憶體的一種機制,其中很多緩存資料實作都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab配置設定器中的緩存對象。
2.2
tomcat占用記憶體過高,可修改 tomcat目錄/bin/catalina.sh 檔案,增加一下配置 JAVA_OPTS="-Xms512m -Xmx512m -Xmn256m" (設定要小一點,設定為512m,實際可達1G左右)
jar占用過高,啟動時增加限制
nohup java -jar -Xms512m -Xmx512m -Xmn512m $server --spring.profiles.active=test >./logs/$server.log 2>&1 &
檢視記憶體占用top10
ps auxw|head -1;ps auxw|sort -rn -k3|head -10