应用程序正在被OOM杀手杀死某些oom_score杀死它。 是否有任何特定的值设置为OOM何时在达到设定值后杀死进程或如何决定何时杀死?
如果用一些固定值oom_score完成,有办法改变这个值。
可以通过详细的方式了解如何处理OOM以了解当OOM杀手杀死我的应用时究竟发生了什么?
答案 0 :(得分:2)
是否有任何特定的值设置为OOM何时在达到设定值后杀死进程或何时决定何时杀死?
没有。 OOM杀手仅在系统内存不足时使用。当发生这种情况时,它首先杀死具有最高OOM分数的进程。分数基于进程使用的内存量,并根据各种启发式进行一些调整。
一般来说,如果完全激活OOM杀手,则系统内存太少或进程失控。这绝不应该发生在嵌入式设备中 - 它是某种问题的标志。
尽管如此,您可以通过将值写入/proc/$pid/oom_score_adj
来调整流程的OOM分数。该文件中的值将添加到流程的OOM分数中,因此正值将使OOM杀手更有可能更频繁地针对该流程,而负值将使OOM杀手避免该流程。