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