Linux下Python程序Killed,分析其原因

查看日志

cd /var/log/

下面是我的log目录下的文件:
Linux下Python程序Killed,分析其原因_第1张图片

其中syslog中就是最新的日志信息。

直接查找错误

egrep -i 'killed process' /var/log/syslog
# 或:
egrep -i -r 'killed process' /var/log

这个命令把最近的killed process信息都输出了,如下图所示:
Linux下Python程序Killed,分析其原因_第2张图片

参数说明

Killed process 11935 (python3) total-vm:2601976kB, anon-rss:652292kB, file-rss:0kB, shmem-rss:0kB
  • total-vm:进程总共使用的虚拟内存;
  • anon-rss:虚拟内存实际占用的物理内存;
  • file-rss:虚拟内存实际占用的磁盘空间;

OOM killer

LINUX内核Out-Of-Memory killer机制是一种防止内存耗尽影响系统运行而采用的一种自我保护机制。
根据内核源码oom_kill.c中的定义,系统会依据“进程占用的内存”,“进程运行的时间”,“进程的优先级”,“是否为 root 用户进程“,”子进程个数和占用内存“,”用户控制参数oom_adj ”等计算一个oom_score值,分数越高就越会被内核优先杀掉。


参考

窥探的艺术:透过LINUX源码洞悉OOM的本质!
linux 程序被Killed,如何精准查看日志

你可能感兴趣的:(Linux)