索尼的工程師 Peter Enderborg 向 Linux 內(nèi)核 LKML 提交了一份郵件,郵件中提出了一種新的看門狗(Watchdog)軟件,可優(yōu)化設(shè)備內(nèi)存不足的解決方案。
IT之家了解到,看門狗軟件是一種監(jiān)控程序,可定時查看設(shè)備的運行狀況,當遇到不可恢復(fù)的錯誤時,就發(fā)出重啟信號來解決問題,在軟件中具有最高優(yōu)先級。
郵件中指出,新的看門狗將不會執(zhí)行硬重啟,而是采取 "預(yù)先定義的操作" 來嘗試取消不重要的進程,該方法采用了對 "oom_score_adj" 監(jiān)控來執(zhí)行相應(yīng)操作,看門狗會關(guān)閉具有最高 "oom_score_adj" 的進程。
"oom_score" 是 Linux 內(nèi)核分配給每個運行中的進程的分數(shù),數(shù)字越大則表示該進程的內(nèi)存使用越高,而 "oom_score_adj" 是在 -1000 到 1000 之間的數(shù)字,數(shù)字越大意味著該進程越不重要。
當 "oom_score" 和 "oom_score_adj" 相結(jié)合時,就能找出內(nèi)存占用較大且較不重要的進程,從而進行內(nèi)存釋放。