在OOM杀死器日志中可以查看完整的程序命令行参数吗?我现在在/var/log/syslog中看到的是
Memory cgroup out of memory: Kill process 29187 (beam.smp) score 998 or sacrifice child
Killed process 29302 (cpu_sup) total-vm:4300kB, anon-rss:76kB, file-rss:272kB
beam.smp invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
beam.smp cpuset=/ mems_allowed=0-3我的机器上有很多beam.smp进程,找出哪个进程被OOM杀手杀死是不方便的。
发布于 2014-12-11 10:57:07
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杀手实际杀死占用内存的任务时,就会显示该信息。
发布于 2015-09-11 13:15:49
echo 1 > /proc/sys/vm/oom_dump_tasks对我帮助不大--日志中仍然没有命令行参数。
若要回顾查看已终止进程的命令行,可以使用顶上记录系统活动。
如果oom杀手杀死了s/th,那么就打开日志顶部,通过PID从/var/ log /syslog找到进程,然后按“c”键查看进程的命令行。
https://serverfault.com/questions/651810
复制相似问题