linux内核模块内存分布,缓存中有内存的Linux内核模块OOM

所以这就是发生了什么.我仍然不知道为什么高缓存使用导致内核模块到OOM.问题在于我们无法访问的第三方代码,因此谁知道他们在做什么.

我想有人可以争辩,如果这是设计,非关键磁盘缓存可以占用所有可用的空闲内存,并导致内核模块到OOM,那么恕我直言,也许磁盘缓存应该为内核留下一些东西.

我决定改为限制缓存,因此总有一些“真正免费”的内存留给内核使用,而不依赖于缓存中绑定的“那种免费”内存.

我找到了一个内核补丁,它将添加/ proc / sys / vm / pagecache_ratio,以便您可以设置磁盘缓存可以占用多少内存.但是由于某种原因,它从未被整合到内核中(我认为这是一个好主意,特别是如果磁盘缓存可能导致内核OOM).但我不想因为可维护性和面向未来的原因而混淆内核补丁.如果有人只是做了一次性的交易,并且不介意补丁,这里是链接:

http://lwn.net/Articles/218890/

我的解决方案是我重新编译了内核并启用了cgroups,我正在使用它来限制一组负责大量磁盘访问的进程(因此运行缓存)的内存使用量.调整配置后,似乎工作正常.我将让我的设置在周末进行压力测试,看看OOM是否仍然存在.

编辑

我想我找到了自己的答案. / proc / sys / vm /中有VM调整参数.与此问题相关的可调设置为:min_free_kbytes,lowmem_reserve_ratio和extfrag_threshold.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值