首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完全禁用oom杀手

完全禁用oom杀手
EN

Unix & Linux用户
提问于 2018-03-19 20:39:36
回答 1查看 10K关注 0票数 6

我遇到了一些间歇性的问题,这些问题似乎与清除某些子进程的杀卵剂有关,但我不明白为什么。

有没有一种方便的方法可以通过sysctl来抑制所有的杀卵活性?

我找到了一些说明说这些应该有效,但它们对我来说并不存在。

代码语言:javascript
复制
sysctl -w memory.oom_control=1
sysctl -w vm.oom-kill=0

我也见过这两个人被建议,但奥姆杀手继续下去。

代码语言:javascript
复制
sysctl vm.overcommit_memory=2
sysctl vm.overcommit_kbytes=0
EN

回答 1

Unix & Linux用户

发布于 2023-01-23 16:48:33

虽然这个问题很老,但今天我在读书时,却提出了这个问题……

sysctl -w memory.oom_control=1

你几乎从来不想这么做。开箱即用,大多数Linux发行版默认设置为“0”,这意味着内核猜测过多提交内存的数量。“1”意味着它总是会超额承诺。如果您在(接近)稳态机器上获取OOM错误,则应该使用值2。这不会禁用过度提交!它只是对内核承诺给程序的内存设置了一个限制。这个限制由overcommit_ratioovercommit_kbytes决定。不幸的是,本文件没有指出如何解决其中每一个中的冲突值。但如果你看看..。

设置一个禁用另一个(读取时显示为0)。

超额承诺比率的正确值取决于机器的使用方式。默认(RAM +交换* 1.5 = 50)对于桌面计算机来说可能是有意义的,但对于服务器来说则是相当高的IME。在交换中拥有服务器通常是一件坏事。

因此,简短的版本是:

代码语言:javascript
复制
sysctl vm.overcommit_memory=2
sysctl vm.overcommit_ratio=20

如果您仍然看到OOM杀手,...and会尝试降低比率值。

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

https://unix.stackexchange.com/questions/432171

复制
相关文章

相似问题

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