redis 啟動以後,總是隔一段時間被自動殺掉。根據分析系統日誌,推測應該是系統記憶體不足被 oom killer 殺掉。
(一)修改redis配置檔案
由於本機自帶記憶體只有1g,一般推薦redis設定記憶體為最大物理記憶體的四分之三,所以設定0.75g,換成byte是751619276.
maxmemory 0.75gb
maxmemory-policy volatile-lru
(二)降低redis程序的oom adj分數「oom killer會在可用記憶體不足時選擇性的殺掉使用者程序,它的執行規則是怎樣的,會選擇哪些使用者程序「下手」呢?oom killer程序會為每個使用者程序設定乙個權值,這個權值越高,被「下手」的概率就越高,反之概率越低。每個程序的權值存放在/proc//oom_score中,這個值是受/proc//oom_adj的控制,oom_adj在不同的linux版本的最小值不同,可以參考linux原始碼中oom.h(從-15到-17)。當oom_adj設定為最小值時,該程序將不會被oom killer殺掉。設定方法如下:
echo -17 > /proc/$/oom_adj
$:即應用啟動後的程序id
參見redis程序異常退出排查
解決openoffice程序異常退出的辦法
步驟1 編寫指令碼 openoffice.sh usr bin bash openofficepid ps ef grep opt openoffice4 program soffice grep v grep grep v grep awk if n openofficepid then echo...
尋找異常退出終端上的程序
尋找異常退出終端上的程序 2011年09月01日 個別telnet上來的使用者沒有正常退出應用程式,直接關閉telnet程式,保險的應用程式可能遮蔽了一些訊號,結果這些失去父程序的可憐孩子,只好用頻繁的cpu活動來回報作業系統。經檢查這些程序有個特點,就是ps顯示有終端號,但是在who輸出中沒有該終...
MHA監控程序異常退出(MHA版本 0 56)
最近遇到乙個非常詭異的問題,mha後台程序自己中斷退出了。以下是報錯 mon dec 21 20 16 07 2015 info ok.mon dec 21 20 16 07 2015 warning shutdown script is not defined.mon dec 21 20 16 0...