寻找应用程序被杀的状态或OOM得分值

问题描述:

应用程序正在用OOM Killer杀死某些oom_score。 有没有为OOM设置任何特定值,何时在达到设定值后终止进程或者如何决定何时执行杀死?寻找应用程序被杀的状态或OOM得分值

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

可以通过一些详细的方式如何处理OOM来了解当OOM杀手杀死我的应用时到底发生了什么?

有没有为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