OOM 终止程序刚刚终止了某个进程。当值grep oom_kill /proc/vmstat
增加时,我可以知道。
我如何知道具体哪个进程被终止了(名称、进程标识符、所有者等等)以及具体时间(时间戳)?
答案1
了解最近的 OOM-kill 详细信息的一种粗鲁但简单的方法是到处进行 grep(正确的日志路径可能因 distrib 而异):
sudo dmesg -T | grep -Ei 'killed process|oom.killer'
sudo grep -Ei 'killed process|oom.killer' /var/log/messages /var/log/syslog 2>/dev/null
.
在正则表达式中表示“任何字符” grep
,因此它会找到同时包含“oom-killer”和“oom killer”的行。
2>/dev/null
最后,如果您的系统中没有这样的日志文件,则需要摆脱“没有这样的文件或目录”错误。
答案2
在日志中查找来自 OOM 杀手事件的条目。
sudo grep -i "oom-killer" /var/log/messages
结果看起来像这样:
kernel: [timestamp] Out of memory: Kill process [process_name] ([process_pid]), UID [user_id]/[username], VmSize:[memory_size] kB, VmRSS:[resident_memory_size] kB, MemLimit:[memory_limit] kB