低内存管理lower memory killer

63 篇文章 0 订阅
21 篇文章 0 订阅

在开发过程中发现,经过长时间运行的系统,会发生c层service重启的情况。

如果service重启了,一般就是内存泄漏或者指针错误。

经过使用dumpsys meminfo查看发现经过一段时间,这个内存是不断增加的,就判断发生了oom现象。

通过这个命令,可以查看内存oom_adj临界值:

 cat /sys/module/lowmemorykiller/parameters/adj            
0,58,117,176,529,1000

这个指定储存空闲页面的数量:

cat /sys/module/lowmemorykiller/parameters/minfree        
12288,15360,18432,21504,24576,30720

lower memory killer原理介绍:

举例:

0,8写入oom_adj中,1024,4096写入minfree中,

那么就表示,当一个进程的空闲存储空间下降到4096个页面的时候,oom_adj值为8或者更大的进程会被kill掉;

同理,当一个进程的空闲空间下降到1024个页面的时候,oom_adj值为0或者更大的进程会被kill掉。

越大的进程越先被kill掉

占用物理内存最多的那个进程会被kill掉。

当某个进程被选中,内核会发送SIGKILL信号将其kill掉。


查看某个进程的adj值  

ps 查看进程pid

cat /proc/进程pid/oom_adj  





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值