linux oom 内存超过多少会被kill

linux oom 内存超过多少会被kill,第1张

OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味

在kernel 2.6,内存不足将唤醒oom_killer,挑出/proc/<pid>/oom_score最大者并将之kill掉

为了保护重要进程不被oom-killer掉,我们可以:echo -17 >/proc/<pid>/oom_adj,-17表示禁用OOM

我们也可以对把整个系统的OOM给禁用掉:

sysctl -w vm.panic_on_oom=1 (默认为0,表示开启)

sysctl -p

值得注意的是,有些时候 free -m 时还有剩余内存,但还是会触发OOM-killer,可能是因为进程占用了特殊内存地址

平时我们应该留意下新进来的进程内存使用量,免得系统重要的业务进程被无辜牵连

可用 top M 查看最消耗内存的进程,但也不是进程一超过就会触发oom_killer

参数/proc/sys/vm/overcommit_memory可以控制进程对内存过量使用的应对策略

当overcommit_memory=0 允许进程轻微过量使用内存,但对于大量过载请求则不允许(默认)

当overcommit_memory=1 永远允许进程overcommit

当overcommit_memory=2 永远禁止overcommit

ref:http://www.2cto.com/os/201309/247081.html

环境:Centos7 现象:Linux测试服务器上部署了很多程序mysql、mongodb、java等等。程序 *** 作mongodb经常进程被杀死的情况,导致业务中断,mongodb 的logs无提示信息。查看系统日志message后,发现对应时间点,系统自动kill掉了mongodb进程,如下 Out of memory: Kill process 5372 (mongod) score 130 or sacrifice child Killed process 5372 (mongod), UID 0, total-vm:2539052kB, anon-rss:2117096kB, file-rss:0kB, shmem-rss:0kB Linux 分配内存策略 Linux内核根据应用程序的要求来分配内存,由于进程实际上并不会将分配的内存全部使用,所以,为了提高性能,内核采用了一种过度分配内存(over-commit-memory)的策略,来间接利用进程的空闲内存,提高内存的使用效率。一般来说,这没问题。但如果大多数进程都耗光自己的内存,就有麻烦了。因此此时,所有应用程序的内存之和大于物理内存。所以,必须杀掉一部分进程,一般来说,是选内存占用最大的进程杀掉。 挑选原理 挑选的过程由linux/mm/oom_kill.c里的 oom_badness() 函数决定,挑选的算法很直接:是那个最占用内存的进程。 /** test2334 1.6 2.1 623800 4876 ?Ssl 09:52 0:00 /usr/sbin/test 0 当然,也可以完全关闭 OOM killer,但线上生产环境最好不要这么做。 OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味 在kernel 2.6,内存不足将唤醒oom_killer,挑出/proc/<pid>/oom_score最大者并将之kill掉 为了保护重要进程不被oom-killer掉,我们可以:echo -17 >/proc/<pid>/oom_adj,-17表示禁用OOM 我们也可以对把整个 系统 的OOM给禁用掉: sysctl -w vm.panic_on_oom=1 (默认为0,表示开启) sysctl -p 值得注意的是,有些时候 free -m 时还有剩余内存,但还是会触发OOM-killer,可能是因为进程占用了特殊内存地址 平时我们应该留意下新进来的进程内存使用量,免得系统重要的业务进程被无辜牵连 可用 top M 查看最消耗内存的进程,但也不是进程一超过就会触发oom_killer 参数/proc/sys/vm/overcommit_memory可以控制进程对内存过量使用的应对策略 当overcommit_memory=0 允许进程轻微过量使用内存,但对于大量过载请求则不允许(默认) 当overcommit_memory=1 永远允许进程overcommit 当overcommit_memory=2 永远禁止overcommit 参考:https://blog.csdn.net/pansaky/article/details/87518586 https://www.cnblogs.com/shenlinken/p/10987895.html https://blog.csdn.net/weixin_34186128/article/details/94673229 https://www.cnblogs.com/yanqingxu/p/8316359.html


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7344258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存