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

dta0502發表於2018-08-24

檢視日誌

cd /var/log/

下面是我的log目錄下的檔案:
log目錄

其中syslog中就是最新的日誌資訊。

直接查詢錯誤

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

這個命令把最近的killed process資訊都輸出了,如下圖所示:
killed process

引數說明

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,如何精準檢視日誌

相關文章