Linux 程序被Killed,查看原因

举报
代码的路 发表于 2023/01/11 09:56:19 2023/01/11
1.7k+ 0 2
【摘要】 原文链接 查看信息输入以下程序:dmesg | egrep -i -B100 'killed process'可以输出最近killed的信息。 设定kill优先度 完全关掉oom(不建议)sysctl vm.overcommit_memory=2echo “vm.overcommit_memory=2” >> /etc/sysctl.conf 出现 Out of memory之后重启sysc...

原文链接

查看信息

输入以下程序:

dmesg | egrep -i -B100 'killed process'

可以输出最近killed的信息。

设定kill优先度

完全关掉oom(不建议)

sysctl vm.overcommit_memory=2
echo “vm.overcommit_memory=2>> /etc/sysctl.conf

出现 Out of memory之后重启

sysctl vm.panic_on_oom=1
sysctl kernel.panic=X
echo “vm.panic_on_oom=1>> /etc/sysctl.conf
echo “kernel.panic=X” >> /etc/sysctl.conf

优先考虑kill这个进程

sudo echo 10>/proc/[PID]/oom_adj

尽量不去kill这个进程

sudo echo -15>/proc/[PID]/oom_adj

不会kill这个进程

sudo echo -17>/proc/[PID]/oom_adj

oom_adj的值在-16 到 +15之间,值越高被kill的优先度越高。当该值为-17时,系统将不会杀死指定pid的进程,而-16~15则会使得进程的/proc/[pid]/oom_adj值呈指数形式递增:

K × 2 n K\times 2^{^{n}}

即它们被杀掉的可能性呈指数递增。针对init(进程号为1)这个进程,无论该值设为多少都不会被杀。

若拒绝访问

命令改为:

bash -c "echo '10' | tee /proc/[PID]/oom_adj"
bash -c "echo '-15' | tee /proc/[PID]/oom_adj"
bash -c "echo '-17' | tee /proc/[PID]/oom_adj"

学习更多编程知识,请关注我的公众号:

代码的路

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。