Linux触发Killed的原因是什么,如何查看Killed日志
Admin 2022-07-21 群英技术资讯 2146 次浏览
在linux中,出现killed的原因是系统资源不足或内存不足;当系统资源不足时,Linux内核也可以决定终止一个或多个进程,内存不足时会在系统的物理内存耗尽时触发killed,可以利用“dmesg | tail -7”命令来查看killed日志。
本教程操作环境:linux7.3系统、Dell G3电脑。
触发Killed常见原因
当系统资源不足时,Linux 内核也可以决定终止一个或多个进程。 一个非常常见的例子是内存不足 (OOM) killer,会在系统的物理内存耗尽时触发。
当内存不足时,内核会将相关信息记录到内核日志缓冲区中,该缓冲区可通过 /dev/kmsg 获得。
有几个工具/脚本/命令 可以更轻松地从该虚拟设备读取数据,其中最常见的是 dmesg 和 journalctl。
查看Killed日志
使用sudo dmesg | tail -7命令(任意目录下,不需要进入log目录,这应该是最简单的一种)
可以看到:
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行内容
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在linux中,静态路由是路由项由手动设置的一种路由方式;即使网络状态已经改变或重新被组态,静态路由也是固定不变的,静态路由由网络管理员逐项加入路由表,可用“route add -net 增加到某个网段的路由”语句在linux中增加路由。
3种查询方法:1、打开终端,执行“mysql -V”命令,查看输出结果中Distrib关键字后跟的版本信息即可。2、打开终端,执行“mysql --version”命令,查看输出结果中Distrib关键字后跟的版本信息即可。3、打开终端,执行“mysql --help |grep Distrib”,查看输出结果中Distrib关键字后跟的版本信息即可。
进程的概念进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可
linux中进程与程序的区别:1、程序是静态的,它只是一组指令的集合,不具有任何的运行意义;而进程是动态的,它是程序运行的动态过程。2、进程的生命周期是相对短暂的,而程序是永久的。3、一个进程只能对应一个程序,一个程序可以对应多个进程。4、进程具有并发性和交往性,而程序不具有,它是封闭的。
阿里云CentOS服务器环境(java环境+mysql+tomcat)和部署 JavaWeb
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008