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
 
 

基本概念:

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命令,结果如下:

转载自:

https://www.cnblogs.com/duanxz/p/10185946.html

https://www.cnblogs.com/yanqingxu/p/8316359.html

最新文章

  1. SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块
  2. centos7 升级内核到最新版本
  3. Linux学习笔记2_mysql安装
  4. Handling events in an MVVM WPF application
  5. HTML速查列表
  6. SQL Server 数据导入Mysql详细教程
  7. es6小技巧
  8. js限制textarea文本框的文字个数
  9. Linux学习之tail命令
  10. The type MultipartEntity is deprecated
  11. 【android】优秀的UI资源站点集合
  12. 初识Jenkins
  13. 官网下载的Struts 2解压后缺少xwork-core.jar文件
  14. bzoj1195 神奇的ac自动机+状态压缩dp
  15. js五子棋游戏
  16. learning scala read from console
  17. 错误“AxImp.exe”已退出,代码为 -1163019603【转载及个人看法】
  18. Jquery执行效率提高的方法
  19. 嵌入web字体
  20. C#(Winform)的SaveFileDialog(文件保存对话框)控件使用

热门文章

  1. windows cmd下如何暂停(挂起)运行中的进程
  2. centos安装xen虚拟机并且配置bridge
  3. 024--python re、logging、configparser、hashlib模块
  4. Mac下的常用终端命令与vim常用命令
  5. Codeforces Round #357 (Div. 2)C. Heap Operations
  6. mysql关于时间函数的应用
  7. gvim 常用键
  8. AtCoder Grand Contest 016 E - Poor Turkeys
  9. Codeforces 669D Little Artem and Dance (胡搞 + 脑洞)
  10. [BZOJ3916/WOJ3815]Friends