我们在这里解释:Linux是否会在不问我内存是否不足的情况下就开始扼杀我的进程?可以通过overcommit_memory配置OOM-Killer,并且:
现在,我可能完全误解了这一点,但是为什么没有一个选项(或者为什么它不是默认的)来关闭实际上试图访问它分配的太多内存的进程?
发布于 2014-06-10 09:21:19
考虑一下这种情况:
如果被终止的进程是请求内存的最后一个进程,则任务管理器将被杀死。
或者:
现在你的X服务器被杀了。
它没有引起问题,只是“在错误的时间在错误的地点”。当没有剩下的内存时,它碰巧是分配更多内存的第一个进程,但它不是开始使用所有内存的进程。
发布于 2020-07-14 20:09:20
这个问题困扰了我很长时间,我所发现的只有全能的"Linux维护者“在鼓吹OOM杀手是人类发明的终极工具。(我想知道这些人中的大多数人是否每天都使用Linux,因为他们的言论听起来与我在现实中看到的相距甚远.)
从我对OOM杀手的经验来看(很多次结冰和崩溃,重新启动,很多痛苦,浪费了很多时间,永远无法挽回)我对OOM杀手的理解是,它是坏的,它不起作用,而且它在设计上有根本的缺陷,因为它不会杀死主犯(就像Windoze那样分配更多内存的应用程序).相反,它杀死了围绕着主要大进程的过程,这不会带来任何结果。
在我看来,这个Linux杀手看起来就像以前设计的那样,当时计算机的内存不足128 MB,浏览器还没有出现。这是不切实际的,不符合今天的标准。
这些命令对于您为键盘快捷键分配是有用的:
首先,使用以下命令测试要终止的进程:
ps aux | grep STRING
ps aux | grep PORTION_OF_NAME_WITHOUT_QUOTES_OR_SPACES如果它显示了您想要杀死的进程,那么将它放在下面括号内的脚本中。
#!/bin/bash
#
kill -9 $(ps aux | grep type=renderer)
# the above will kill all my Chromium processes
# without having to restart my entire browser or losing progress
# incognito window will be kept alive, instead of lost
#
sudo killall tumblerd
# (optional)甚至更好:
sudo apt remove tumblerhttps://unix.stackexchange.com/questions/136364
复制相似问题