Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4754
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-23 18:19
个人简介

试看linux学习

文章分类
文章存档

2014年(2)

我的朋友

分类: LINUX

2014-04-23 19:03:37

1.OOM启动是在分配内存时发生页面错误时触发的,没有剩余内存阙值可控制。
2.OOM结束进程只是简单的搜寻哪个进程的/proc//oom_score数值分最大。系统综合进程的内存消耗量、CPU时间、存活时间和oom_adj、oom_score_adj计算,消耗内存越多分越高,存活时间越长分越低,总的策略是:损失最少的工作,释放最大的内存同时不伤及无辜的用了很大内存的进程,并且杀掉的进程数尽量少。
3.调整oom_score的值可通过更改/proc//oom_score_adj或/proc//oom_adj进行。oom_score_adj范围-1000~~+1000,数值越小越安全,-1000表示OOM对此进程禁用;同样oom_adj范围-17~~+15,数值越小越安全,-17表示OOM对此进程禁用。对oom_adj的支持基于兼容过去内核版本,尽量使用/proc//oom_score_adj进行设置。
4.Linux在计算进程的内存消耗的时候,会将子进程所耗内存的一半同时算到父进程中。

Android系统:
Android不喜欢OOM的机制,OOM启动时已经过晚。所以开发者引入了"low memory killer"驱动,low memory killer有多层控制:
1.当处于低可用内存时,触发第一层控制,通知后台进程遇到一个问题,如果进程不退出,则保存他们的状态,这样当后台进程重新活动时,他们需要重新加载。
2.当可用内存进一步减少时,触发第二层控制,low memory killer会结束掉在上一步中已经保存状态的不关键的后台进程。
3.系统濒于崩溃时,将结束前台进程。
这种机制可使系统内存较低时,调出进程管理器结束不必要的进程释放空间;如果等到OOM动作时,也许进程管理器已经无法启动了。
阅读(2399) | 评论(0) | 转发(0) |
0

上一篇:网上学习记录

下一篇:没有了

给主人留下些什么吧!~~