linux出現(xiàn)killed的原因是什么
在Linux中,出現(xiàn)killed的原因是系統(tǒng)資源不足或內(nèi)存不足;當(dāng)系統(tǒng)資源不足時(shí),Linux內(nèi)核也可以決定終止一個(gè)或多個(gè)進(jìn)程,內(nèi)存不足時(shí)會(huì)在系統(tǒng)的物理內(nèi)存耗盡時(shí)觸發(fā)killed,可以利用“dmesg | tail -7”命令來查看killed日志。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux出現(xiàn)killed的原因是什么
觸發(fā)Killed常見原因
當(dāng)系統(tǒng)資源不足時(shí),Linux 內(nèi)核也可以決定終止一個(gè)或多個(gè)進(jìn)程。 一個(gè)非常常見的例子是內(nèi)存不足 (OOM) killer,會(huì)在系統(tǒng)的物理內(nèi)存耗盡時(shí)觸發(fā)。
當(dāng)內(nèi)存不足時(shí),內(nèi)核會(huì)將相關(guān)信息記錄到內(nèi)核日志緩沖區(qū)中,該緩沖區(qū)可通過 /dev/kmsg 獲得。
有幾個(gè)工具/腳本/命令 可以更輕松地從該虛擬設(shè)備讀取數(shù)據(jù),其中最常見的是 dmesg 和 journalctl。
查看Killed日志
使用sudo dmesg | tail -7命令(任意目錄下,不需要進(jìn)入log目錄,這應(yīng)該是最簡單的一種)
可以看到:
oom-kill之后,就是解釋那個(gè)被killed的程序的pid和uid
Out of memory: Killed process 1138439 (Python3) total-vm:8117956kB, anon-rss:5649844kB,內(nèi)存不夠
total_vm:總共使用的虛擬內(nèi)存 Virtual memory use (in 4 kB pages)
8117956/1024(得到MB)/1024(得到GB)=7.741GB
rss:常駐內(nèi)存使用Resident memory use (in 4 kB pages)
5649844/1024/1024=5.388GB
擴(kuò)展知識(shí)
使用下面的這幾行命令
journalctl --list-boots | awk ‘{ print $1 }’ | xargs -I{} journalctl --utc --no-pager -b {} -kqg ‘killed process’ -o verbose --output-fields=MESSAGE
就可以直接得到,最關(guān)鍵的信息
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
網(wǎng)上更常見的似乎是:
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' # 但是這個(gè)會(huì)輸出非常多的信息。。。
其中-B100,表示 'killed process’之前的100行內(nèi)容
推薦學(xué)習(xí):Linux視頻教程
以上就是linux出現(xiàn)killed的原因是什么的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注其它相關(guān)文章!
版權(quán)聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系網(wǎng)站客服處理。