当前位置: 代码网 > 服务器>服务器>Linux > Linux查看程序被Killed的原因及分析

Linux查看程序被Killed的原因及分析

2024年11月16日 Linux 我要评论
linux查看程序被killed原因1.查看信息,输出最近被killed的进程查看被killed简短信息列表 egrep -i -r 'killed process' /var/log

linux查看程序被killed原因

1.查看信息,输出最近被killed的进程

查看被killed简短信息列表 egrep -i -r 'killed process' /var/log

[root@ecs-bcb3 ~]# egrep -i -r 'killed process' /var/log 
/var/log/messages:jul 12 15:00:24 ecs-bcb3 kernel: killed process 26399 (python3), uid 1002, total-vm:27455044kb, anon-rss:24933916kb, file-rss:712kb, shmem-rss:0kb
/var/log/messages:jul 12 15:00:24 ecs-bcb3 kernel: killed process 29412 (python3), uid 1002, total-vm:27455044kb, anon-rss:24934124kb, file-rss:780kb, shmem-rss:0kb
/var/log/messages:jul 12 15:18:39 ecs-bcb3 kernel: killed process 25017 (chromedriver), uid 1002, total-vm:218888kb, anon-rss:2312kb, file-rss:184kb, shmem-rss:0kb
/var/log/messages:jul 12 15:18:39 ecs-bcb3 kernel: killed process 30252 (chromedriver), uid 1002, total-vm:201472kb, anon-rss:2032kb, file-rss:104kb, shmem-rss:0kb

查看被killed详细信息列表 dmesg | egrep -i -b100 'killed process'

[root@ecs-bcb3 ~]# dmesg | egrep -i -b100 'killed process'
[19095552.852409] [31573]  1002 31573   131893     2522     166        0             0 chrome
[19095552.852585] [31597]  1002 31597   144656     4247     168        0           200 chrome
[19095552.852756] [31599]  1002 31599   148317     2766     183        0             0 chrome

[19095552.869403] [26287]  1004 26287  1975489   186919     547        0             0 java
[19095552.869548] [27054]   999 27054     1154       23       8        0             0 sh
[19095552.869700] [27058]   999 27058     1110       16       8        0             0 df
[19095552.869842] out of memory: kill process 7429 (python3) score 357 or sacrifice child
[19095552.869991] killed process 7429 (python3), uid 1002, total-vm:26420076kb, anon-rss:23508276kb, file-rss:920kb, shmem-rss:0kb
...

查看被killed简短信息列表 journalctl -xb | egrep -i 'killed process'

12月 21 15:33:18 ecs-kms kernel: killed process 2580 (chrome), uid 0, total-vm:862648kb, anon-rss:53044kb, file-rss:156kb, shmem-rss:2692kb
12月 21 15:33:18 ecs-kms kernel: killed process 3000 (chrome), uid 0, total-vm:862136kb, anon-rss:49508kb, file-rss:16kb, shmem-rss:2508kb
12月 21 15:33:18 ecs-kms kernel: killed process 3165 (chrome), uid 0, total-vm:859320kb, anon-rss:48372kb, file-rss:112kb, shmem-rss:2492kb
...

2.设定kill优先度

  • 2.1 完全关掉oom
sysctl vm.overcommit_memory=2
echo “vm.overcommit_memory=2” >> /etc/sysctl.conf
  • 2.2 出现 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
  • 2.3 优先考虑kill这个进程
sudo echo 10>/proc/[pid]/oom_adj
  • 2.4 尽量不去kill这个进程
sudo echo -15>/proc/[pid]/oom_adj
  • 2.5 不会kill这个进程
sudo echo -17>/proc/[pid]/oom_adj

备注:

  • oom_adj的值在-16 到 +15之间,值越高被kill的优先度越高。
  • 当该值为-17时,系统将不会杀死指定pid的进程,而-16~15则会使得进程的 /proc/[pid]/oom_adj 值呈指数形式递增,即它们被杀掉的可能性呈指数递增。
  • 针对init(进程号为1)这个进程,无论该值设为多少都不会被杀

3.若上述命令被拒绝访问

命令修改成以下方式

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"

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com