• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

linux - 如何在 Linux 中禁用 oom 杀手?

[复制链接]
菜鸟教程小白 发表于 2022-8-3 10:11:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我目前的配置是:

> cat /proc/sys/vm/panic_on_oom
0
> cat /proc/sys/vm/oom_kill_allocating_task
0
> cat /proc/sys/vm/overcommit_memory
1

但是当我运行任务时,它无论如何都会被杀死。
> ./test/mem.sh
Killed
> dmesg | tail -2
[24281.788131] Memory cgroup out of memory: Kill process 10565 (bash) score 1001 or sacrifice child
[24281.788133] Killed process 10565 (bash) total-vm:12601088kB, anon-rss:5242544kB, file-rss:64kB

更新

我的任务习惯于科学计算,需要很多内存,好像overcommit_memory=1可能是最好的选择。

更新 2

实际上,我正在做一个数据分析项目,它的内存消耗超过16G ,但我被要求将它们限制在大约 5G .可能无法通过优化程序本身来实现这个需求,因为项目使用了很多子命令,而且大多数子命令不包含像Xms这样的选项。或 Xmx在 java 。

更新 3

My project应该是一个过度使用的系统。究竟是什么a3f说,似乎我的应用程序更喜欢通过 xmalloc 崩溃当内存分配失败时。
> cat /proc/sys/vm/overcommit_memory
2
> ./test/mem.sh
./test/mem.sh: xmalloc: .././subst.c:3542: cannot allocate 1073741825 bytes (4295237632 bytes allocated)

我不想投降,虽然这么多可怕的考验让我筋疲力尽。
所以请给我一条通向光明的道路; )



Best Answer-推荐答案


OOM 杀手不会消失。如果没有内存,就得有人付钱。您可以做的是设置一个限制,在此之后内存分配失败。
这正是设置vm.overcommit_memory2达到。

来自 the docs :

The Linux kernel supports the following overcommit handling modes

2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap + a configurable amount (default is 50%) of physical RAM. Depending on the amount you use, in most situations this means a process will not be killed while accessing pages but will receive errors on memory allocation as appropriate.



通常,内核会很乐意分发虚拟内存(过量使用)。只有当你引用一个页面时,内核才必须将该页面映射到一个真实的物理帧。如果它无法为该请求提供服务,则需要由 OOM 杀手杀死一个进程以腾出空间。

禁用过量使用意味着例如malloc(3)将返回 NULL如果内核无法提交请求的内存量。这使事情变得更加可预测,尽管有限(许多应用程序分配的比他们需要的更多)。

关于linux - 如何在 Linux 中禁用 oom 杀手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35791416/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap