今天遇到了一个奇怪的情况那就是在执行python工具脚本的时候总是会出现“Killed”的情况。截图如下。
最开始还以为是自己写的某个脚本出了问题,后续多测试才发现其他的原来好用的脚本文件大多也会这样。既然如此只能说明是当前脚本所处的环境有问题了。那究竟是什么问题呢?
后来经过查阅发现了一个可能的解释是“Cpu过高系统出于自保进而主动杀死了进程”。究竟是不是这样呢?接下来具体查查看。
这里又提到了异常日志所在路径 “var/log",通常我们在查询“out of memory"等记录的时候会关注其中的message是否有相关记录。
/var/log/
考虑到这个目录下的文件还是比较多的究竟py可执行文件的killed记录是记在那个文件我也不清楚索性就全局搜一下被killed的脚本文件的名字吧。这里不出所料依然在message文件下。定位到具体内容如下:
OOM killer
LINUX内核Out-Of-Memory killer机制是一种防止内存耗尽影响系统运行而采用的一种自我保护机制。
根据内核源码oom_kill.c中的定义,系统会依据“进程占用的内存”,“进程运行的时间”,“进程的优先级”,“是否为 root 用户进程“,”子进程个数和占用内存“,”用户控制参数oom_adj ”等计算一个oom_score值,分数越高就越会被内核优先杀掉。