首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OOM Killer -保存cmdline和所有者有关进程被杀死的信息

OOM Killer -保存cmdline和所有者有关进程被杀死的信息
EN

Unix & Linux用户
提问于 2019-08-20 12:00:05
回答 1查看 594关注 0票数 1

我知道OOM杀手在syslog中保存有关pid的信息,但是我也想收集cmdline &进程被杀死的所有者。

信息是相关的调试和麋鹿指标,只是PID没有帮助。我找不到工具或者简单的方法,

有什么聪明的主意吗?

EN

回答 1

Unix & Linux用户

发布于 2019-08-20 13:17:08

代码语言:javascript
复制
echo 1 > /proc/sys/vm/oom_dump_tasks

这似乎是最能让内核在内存不足的错误上显示的。

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

允许在内核执行OOM杀死时生成系统范围的任务转储(不包括内核线程),并包括诸如pid、uid、tgid、vm大小、rss、nr_ptes、swapents、oom_score_adj评分和名称等信息。这有助于确定为什么调用OOM杀手,识别导致OOM杀手的流氓任务,以及确定OOM杀手为什么选择它要杀死的任务。如果设置为零,则此信息将被抑制。在具有数千个任务的大型系统上,可能无法为每个系统转储内存状态信息。当信息可能不需要时,不应强迫此类系统在OOM条件下受到性能惩罚。如果设置为非零,则每当OOM杀手实际杀死占用内存的任务时,就会显示该信息。

编辑

根据在哪里可以看到内核销毁进程的列表?

流程会计在这方面可能会有所帮助。

简单地说:

代码语言:javascript
复制
apt-get install acct

然后尝试这样的命令:

代码语言:javascript
复制
lastcomm
sa

或者在Ubuntu上:

代码语言:javascript
复制
lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct

请参见:

  • http://tldp.org/HOWTO/Process-Accounting/pasetup.html
  • http://tldp.org/HOWTO/Process-Accounting/misccommands.html
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/536453

复制
相关文章

相似问题

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