首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核处理低内存条件

Linux内核处理低内存条件
EN

Stack Overflow用户
提问于 2013-04-02 06:27:02
回答 1查看 2.3K关注 0票数 2

Linux内核如何处理低内存条件?

如何证明新内核能够很好地处理低内存条件?

有相同的标准测试吗?

EN

回答 1

Stack Overflow用户

发布于 2013-04-02 07:33:05

Linux使用OOM(Out Of Memory) Killer处理低内存条件。OOM杀手的策略是杀死一些或多个进程,允许分配进程获得所需的内存。

为了选择要终止的进程,OOM杀手计算了名为Badness的值。然后,选择最坏的过程来杀死它。如果选择了分配过程,OOM将终止其工作。如果选择了其他进程,则可以多次调用OOM杀手,以防以前运行的OOM杀手没有释放足够的内存。

被杀死的过程是以这样的方式选择的

  • 根进程不会被终止。
  • 我们损失了完成的最低工作量。
  • 我们恢复了大量的记忆。
  • 我们想要杀死最小数量的进程(一个)。
  • 我们试图杀死用户期望我们杀死的过程,这个算法经过了精心的调整,以满足最小惊喜的原则。

我们可以使用/proc/sys/vm/overcommit_memory值配置OOM杀手

启发式内存过度提交(默认设置)地址空间的-Obvious过提交被拒绝

1-总是超额承付

2-禁用过提交-当overcommit_memory设置为2时,系统的总地址空间提交不允许超过物理内存的交换+可配置百分比(overcommit_ratio -default为50)。

要证明linux处理OOM,一种简单的方法是通过malloc和memset不断地分配内存,直到进程耗尽内存并被杀死(出现在dmesg中)。

内存不足的标准测试可以在Linux Test Project (LTP)中找到,可在LTP源Forge上找到。

这些测试可在ltp/testcase/内核/mem/oom中获得。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15757536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档