linux出現killed的原因是什麼

2022-07-12 14:02:22

在linux中,出現killed的原因是系統資源不足或記憶體不足;當系統資源不足時,Linux核心也可以決定終止一個或多個程序,記憶體不足時會在系統的實體記憶體耗盡時觸發killed,可以利用「dmesg | tail -7」命令來檢視killed紀錄檔。

本教學操作環境:linux7.3系統、Dell G3電腦。

linux出現killed的原因是什麼

觸發Killed常見原因

當系統資源不足時,Linux 核心也可以決定終止一個或多個程序。 一個非常常見的例子是記憶體不足 (OOM) killer,會在系統的實體記憶體耗盡時觸發。

當記憶體不足時,核心會將相關資訊記錄到核心紀錄檔緩衝區中,該緩衝區可通過 /dev/kmsg 獲得。

有幾個工具/指令碼/命令 可以更輕鬆地從該虛擬裝置讀取資料,其中最常見的是 dmesg 和 journalctl。

檢視Killed紀錄檔

使用sudo dmesg | tail -7命令(任意目錄下,不需要進入log目錄,這應該是最簡單的一種)

03.png

可以看到:

oom-kill之後,就是解釋那個被killed的程式的pid和uid

Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB,記憶體不夠

total_vm:總共使用的虛擬記憶體 Virtual memory use (in 4 kB pages)

8117956/1024(得到MB)/1024(得到GB)=7.741GB

rss:常駐記憶體使用Resident memory use (in 4 kB pages)

5649844/1024/1024=5.388GB

擴充套件知識

使用下面的這幾行命令

journalctl --list-boots |
awk ‘{ print $1 }’ |
xargs -I{} journalctl --utc --no-pager -b {} -kqg ‘killed process’ -o verbose --output-fields=MESSAGE

就可以直接得到,最關鍵的資訊

hs@hs:~$ journalctl --list-boots | \
>     awk '{ print $1 }' | \
>     xargs -I{} journalctl --utc --no-pager -b {} -kqg 'killed process' -o verbose --output-fields=MESSAGE
Mon 2022-02-14 08:48:43.684987 UTC [s=ed0a1ecfd36e41bda458e5e111c46e95;i=d4573;b=7bc379f894944dcd81ae32ff54afa009;m=456b0ad36d2;t=5d7f67bdee47b;x=5bfe01f8e2ca9b2c]
    MESSAGE=Out of memory: Killed process 1125888 (python3) total-vm:8530488kB, anon-rss:5653404kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12552kB oom_score_adj:0
Mon 2022-02-14 09:29:43.854158 UTC [s=ed0a1ecfd36e41bda458e5e111c46e95;i=d4785;b=7bc379f894944dcd81ae32ff54afa009;m=45743506aa5;t=5d7f70e82184e;x=9b55cfb2e7c081e7]
    MESSAGE=Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12544kB oom_score_adj:0

網上更常見的似乎是:

journalctl -xb | egrep -i 'killed process’
hs@hs:~$ journalctl -xb | egrep -i 'killed process'
Feb 14 08:48:43 hs kernel: Out of memory: Killed process 1125888 (python3) total-vm:8530488kB, anon-rss:5653404kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12552kB oom_score_adj:0
Feb 14 09:29:43 hs kernel: Out of memory: Killed process 1138439 (python3) total-vm:8117956kB, anon-rss:5649844kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:12544kB oom_score_adj:0
Feb 15 03:42:08 hs sudo[1151639]:       hs : TTY=pts/0 ; PWD=/home/hs ; USER=root ; COMMAND=/usr/bin/egrep -i -r killed process /var/log

以及

sudo dmesg | egrep -i -B100 'killed process'
# 但是這個會輸出非常多的資訊。。。

其中-B100,表示 'killed process’之前的100行內容

推薦學習:Linux視訊教學

以上就是linux出現killed的原因是什麼的詳細內容,更多請關注TW511.COM其它相關文章!