linux 为什么会自动kill掉进程?怎么处理的

Posted lovoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 为什么会自动kill掉进程?怎么处理的相关的知识,希望对你有一定的参考价值。

发生原因:

Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,然后调用select_bad_process()选择一个”bad”进程杀掉。如何判断和选择一个”bad进程呢?linux选择”bad”进程是通过调用oom_badness(),挑选的算法和想法都很简单很朴实:最bad的那个进程就是那个最占用内存的进程。

如何查看:

grep "Out of memory" /var/log/messages

查看系统日志方法:

egrep -i -r 'killed process' /var/log

也可运行dmesg命令

解决方法:

一是增加系统内存,二是优化进程,使其占用内存降低。三是可以使用oom_score_adj参数,
这个参数会被计算入oom_score,可以避免进程被杀死(不推荐使用)。

QQ群:722865146
分布式商城下载:https://gitee.com/charlinchenlin/wysmall

以上是关于linux 为什么会自动kill掉进程?怎么处理的的主要内容,如果未能解决你的问题,请参考以下文章

linux怎么停止进程

Linux,deian 7怎么把占用80端口的程序kill掉

linux 进程会自己消失,请问是啥原因?

linux 下写 shell kill掉运行时间超过5分钟的PHP进程

linux 下写 shell kill掉运行时间超过5分钟的PHP进程

linux如何杀掉线程