这篇文章主要介绍“linux出现killed的原因有哪些”,在日常操作中,相信很多人在linux出现killed的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux出现killed的原因有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在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目录,这应该是最简单的一种)

linux出现killed的原因有哪些

可以看到:

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‘killedprocess’-overbose--output-fields=MESSAGE

就可以直接得到,最关键的信息

hs@hs:~$journalctl--list-boots|\
>awk'{print$1}'|\
>xargs-I{}journalctl--utc--no-pager-b{}-kqg'killedprocess'-overbose--output-fields=MESSAGE
Mon2022-02-1408:48:43.684987UTC[s=ed0a1ecfd36e41bda458e5e111c46e95;i=d4573;b=7bc379f894944dcd81ae32ff54afa009;m=456b0ad36d2;t=5d7f67bdee47b;x=5bfe01f8e2ca9b2c]
MESSAGE=Outofmemory:Killedprocess1125888(python3)total-vm:8530488kB,anon-rss:5653404kB,file-rss:0kB,shmem-rss:0kB,UID:1000pgtables:12552kBoom_score_adj:0
Mon2022-02-1409:29:43.854158UTC[s=ed0a1ecfd36e41bda458e5e111c46e95;i=d4785;b=7bc379f894944dcd81ae32ff54afa009;m=45743506aa5;t=5d7f70e82184e;x=9b55cfb2e7c081e7]
MESSAGE=Outofmemory:Killedprocess1138439(python3)total-vm:8117956kB,anon-rss:5649844kB,file-rss:0kB,shmem-rss:0kB,UID:1000pgtables:12544kBoom_score_adj:0

网上更常见的似乎是:

journalctl-xb|egrep-i'killedprocess’
hs@hs:~$journalctl-xb|egrep-i'killedprocess'
Feb1408:48:43hskernel:Outofmemory:Killedprocess1125888(python3)total-vm:8530488kB,anon-rss:5653404kB,file-rss:0kB,shmem-rss:0kB,UID:1000pgtables:12552kBoom_score_adj:0
Feb1409:29:43hskernel:Outofmemory:Killedprocess1138439(python3)total-vm:8117956kB,anon-rss:5649844kB,file-rss:0kB,shmem-rss:0kB,UID:1000pgtables:12544kBoom_score_adj:0
Feb1503:42:08hssudo[1151639]:hs:TTY=pts/0;PWD=/home/hs;USER=root;COMMAND=/usr/bin/egrep-i-rkilledprocess/var/log

以及

sudodmesg|egrep-i-B100'killedprocess'
#但是这个会输出非常多的信息。。。

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

到此,关于“linux出现killed的原因有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:Java内存中出现OOM的原因有哪些

点赞(84) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部