首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux中的内存不足控制哪个程序死掉

问linux中的内存不足控制哪个程序死掉
EN

Server Fault用户
提问于 2013-09-18 12:36:11
回答 3查看 412关注 0票数 0

我们在执行一项工作时,我们知道它会对记忆造成太大的压力。然而,这正在导致扼杀一两个进程,而我们希望这些进程是在这种情况下被杀死的最后一个进程。我们如何告诉linux,请不要杀死pid XXXX和pid YYY,并首先杀死其他作业,包括必要时占用所有CPU的作业,因为该作业(我们正在运行的作业)比其他两个进程的生存优先级低。

基本上,我们使用cassandra数据库运行map/reduce作业,linux决定杀死cassandra,而不是杀死map/reduce任务(这将是理想的,因为它们具有内置的恢复功能,并且还可以黑名单任务)。

EN

回答 3

Server Fault用户

回答已采纳

发布于 2013-09-18 12:52:29

您可以设置OOM杀手将终止的进程的优先级。

给一个进程一个负的oom_adj值,以减少它被杀死的可能性:

代码语言:javascript
复制
echo -15 > /proc/2592/oom_adj

给它一个积极的价值,使它更有可能被杀死:

代码语言:javascript
复制
echo 10 > /proc/2592/oom_adj

用要保护和/或牺牲的进程的实际PID替换上述命令中的2592。

票数 3
EN

Server Fault用户

发布于 2013-09-18 12:50:29

您可以:

代码语言:javascript
复制
echo -18 > /proc/$PID/oom_adj

希望这能有所帮助

票数 2
EN

Server Fault用户

发布于 2013-09-18 14:15:13

如果希望终止触发OOM的进程,只需设置适当的sysctl:

代码语言:javascript
复制
vm.oom_kill_allocating_task=1
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/539894

复制
相关文章

相似问题

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