qrtt1 積分 2

我比較習慣看峰值的剩餘空間,希望 OS 至少還有 1GB 能用比較安心,不然記憶體用多的程式可能會遇上 kernel 的 oom killer 就麻煩了。

這是文章的子討論串,你可以回到上層查看所有討論和文章
IngramChen 積分 3

我們以前部署的機器,15GB ram ,我的 JVM heap 就開 14GB,留 1GB 給 OS,結果十幾台主機一週就當個二、三個 jvm。一開始以為踩到 JVM bug,造成 segment fault (畢竟沒有開過 1xGB heap 過,怕怕),查到最後才發現是 OOM killer 會殺。這就很納悶了,不是已經留 1GB 給 OS 了?後來調降到 12 GB 後就再也沒發生過了。

原因沒有詳查,但多半是服務太大,所以 OS 會需要更多的資源 (socket...etc)

所以你講到重點了,是 峰值的剩餘空間 後,還保留個 1GB 左右是安全值,尤其是配置大量的 JVM heap。以前傻傻的直接用硬體 ram 去估算做不得準啊。

qrtt1 積分 2 編輯於

美中不足的是要爆幾次後反覆調整才知道讓把峰值放在哪。

以前比較「擠」的是候是 Tomcat 跟 MySQL 放同一台,oom killer 要殺哪一個還不一定,實在太刺激了。乾脆就讓 Tomcat 獨立到其它台(剛好建 2 台套上 LB 可以做輪流更新程式。)