Linux dmesg 命令查看 kill 程序的日志

程序被 kill 掉,但是并不知道为什么被 kill,

是因为内存原因还是其他原因,通过 dmesg 命令可以确认这部分信息。


dmesg 命令的三种用法

三种方法都能得到 kill 信息,推荐使用第一种。

1
2
3
4
5
6
7
# 有详细的时间
grep -i 'killed process' /var/log/messages

# 查询结果
[root@cdh12 ~]# grep -i 'killed process' /var/log/messages
Jun 17 04:12:20 cdh12 kernel: Killed process 4513 (palo_be), UID 0, total-vm:52091820kB, anon-rss:40273088kB, file-rss:0kB, shmem-rss:0kB
Jun 19 04:30:45 cdh12 kernel: Killed process 20561 (palo_be), UID 0, total-vm:51151564kB, anon-rss:41944112kB, file-rss:0kB, shmem-rss:0kB
1
2
3
4
5
6
7
# 没有详细的时间
dmesg | grep -i 'killed process'

# 查询结果
[root@cdh12 ~]# dmesg | grep -i 'killed process'
[10257349.805906] Killed process 4513 (palo_be), UID 0, total-vm:52091820kB, anon-rss:40273088kB, file-rss:0kB, shmem-rss:0kB
[10431255.475118] Killed process 20561 (palo_be), UID 0, total-vm:51151564kB, anon-rss:41944112kB, file-rss:0kB, shmem-rss:0kB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 有详细的时间和更多的信息
journalctl -xb | egrep -i 'killed process' -C 5

# 得到的信息比较多,但是感觉没什么用
--
Jun 19 04:30:45 cdh12 kernel: [ 5108] 0 5108 28321 134 14 0 0 sqoop
Jun 19 04:30:45 cdh12 kernel: [ 5154] 0 5154 28321 91 11 0 0 sqoop
Jun 19 04:30:45 cdh12 kernel: [ 5155] 0 5155 28356 209 13 0 0 bash
Jun 19 04:30:45 cdh12 kernel: [ 5179] 0 5179 28359 131 13 0 0 bash
Jun 19 04:30:45 cdh12 kernel: Out of memory: Kill process 20561 (palo_be) score 629 or sacrifice child
Jun 19 04:30:45 cdh12 kernel: Killed process 20561 (palo_be), UID 0, total-vm:51151564kB, anon-rss:41944112kB, file-rss:0kB, shmem-rss:0kB
Jun 19 04:30:49 cdh12 systemd-logind[778]: Removed session 20698.
-- Subject: Session 20698 has been terminated
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat

total-vm、anon-rss、file-rss含义

个人感觉 anon-rss 比较重要(实际占用的物理内存)

1
2
3
total-vm:进程总共使用的虚拟内存
anon-rss:虚拟内存实际占用的物理内存
file-rss:虚拟内存实际占用的磁盘空间