2017-06-12 26 views
1

應用程序正在用OOM Killer殺死某些oom_score。 有沒有爲OOM設置任何特定值,何時在達到設定值後終止進程或者如何決定何時執行殺死?尋找應用程序被殺的狀態或OOM得分值

如果使用某個固定值oom_score完成了更改值的方法。

可以通過一些詳細的方式如何處理OOM來了解當OOM殺手殺死我的應用時到底發生了什麼?

回答

2

有沒有爲OOM設置任何特定值,以便在達到設定值後終止進程或者如何確定何時執行kill?

不可以。只有在系統內存不足時纔會使用OOM殺手。發生這種情況時,首先要殺死OOM得分最高的進程。得分基於進程正在使用的內存量,並基於各種啓發式進行一些調整。

一般來說,如果OOM殺手正在被激活,或者你的系統內存太少,或者一個進程失控。這絕不應該發生在嵌入式設備中 - 這是某種問題的徵兆。

說了算,您可以通過將值寫入/proc/$pid/oom_score_adj來調整進程的OOM得分。該文件中的值被添加到進程的OOM得分中,所以正值會使得OOM殺手更有可能更頻繁地針對該進程,而負值會使OOM殺手避免該進程。

+1

明白了,但是一旦它達到了OOM得分780或者Mem使用率達到80%以上,我的應用就會被殺死。意味着OOM只會在我的應用佔用內存總量的80%以上時纔會終止進程。有沒有我可以配置的方法。 – Reddy

+2

是的 - 通過增加更多的內存到您的設備。內存不足。 *有些東西*必須去,而使用80%內存的過程是明顯的目標。 – duskwuff