我知道OOM杀手在syslog中保存有关pid的信息,但是我也想收集cmdline &进程被杀死的所有者。
信息是相关的调试和麋鹿指标,只是PID没有帮助。我找不到工具或者简单的方法,
有什么聪明的主意吗?
发布于 2019-08-20 13:17:08
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杀手实际杀死占用内存的任务时,就会显示该信息。
流程会计在这方面可能会有所帮助。
简单地说:
apt-get install acct然后尝试这样的命令:
lastcomm
sa或者在Ubuntu上:
lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct请参见:
https://unix.stackexchange.com/questions/536453
复制相似问题