Linux進程被殺掉(OOM killer),查看系統日誌
基本概念:
html
Linux 內核有個機制叫OOM killer(Out Of Memory killer),該機制會監控那些佔用內存過大,尤爲是瞬間佔用內存很快的進程,而後防止內存耗盡而自動把該進程殺掉。內核檢測到系統內存不足、挑選並殺掉某個進程的過程能夠參考內核源代碼linux/mm/oom_kill.c,當系統內存不足的時候,out_of_memory()被觸發,而後調用select_bad_process()選擇一個」bad」進程殺掉。如何判斷和選擇一個」bad進程呢?linux選擇」bad」進程是經過調用oom_badness(),挑選的算法和想法都很簡單很樸實:最bad的那個進程就是那個最佔用內存的進程。linux
如何查看:算法
grep "Out of memory" /var/log/messages
ide
查看系統日誌方法:3d
運行egrep -i -r 'killed process' /var/log命令,結果以下:日誌
也可運行dmesg命令,結果以下:
htm