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机制(out of memory)