linux--OOM killer

Posted 龙叔运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux--OOM killer相关的知识,希望对你有一定的参考价值。

OOM killer 是linux自我保护的一个机制,内核检测到内存不足的时候,会挑选并杀掉某个进程以释放内存

 

为什么会出现内存不够的情况呢?

进程不应该是按需分配内存吗,没有了就不分配吗,怎么会有内存不足的情况呢?

这就是linux另一个高明的机制,linux的内核会根据应用程序的要求来分配内存,但是应用程序不可能一直将分配给它的内存都用满,所以为了最大化的利用内存,Linux有一个叫过度分配内存(over-commit-memory)的策略

一般来说没有问题,但是如果有个时间,每个应用程序都将自己的内存都消耗光了,那么所有应用程序的内存之和就是大于实际物理内存的,这个时候就需要出发OOM killer机制来杀掉一部分进程了。

 

正常情况:日常应用程序没有消耗到自己分配的最大内存,运行无问题

异常情况:某个时间,各个应用程序都将分配给自己的内存消耗光了,那么各个应用程序用的内存之和就大于实际物理内存了,也就出现问题需要OOM killer了

 

如何避免OOM killer的发生的?

 ​超分是服务器资源利用率最大化的一个合理机制,所以我们只能从监控和规划上去避免:

【1】做好监控,当内存使用达到设定的告警阈值,人工干预,保证重要服务不受影响

【2】合理划分内存

 

推荐公众号,分享运维知识:龙叔18岁

以上是关于linux--OOM killer的主要内容,如果未能解决你的问题,请参考以下文章

linux oom-killer

Linux OOM 自动杀死进程

linux--OOM killer

linux--OOM killer

Linux OOM-killer机制(out of memory)