解读 Linux 内核日志(kernel log)是排查系统故障、性能问题和硬件异常的重要手段。下面从日志来源、查看方式、常见内容结构、关键字解读、实战示例几个方面系统说明。
Linux 内核日志主要来自:
printk() 打印的信息dmesg(最常用)dmesg
dmesg | tail -n 50
dmesg -T # 显示人类可读时间
注意:
dmesg显示的是内核环形缓冲区,重启后可能丢失
journalctl(systemd 系统)journalctl -k # 仅内核日志
journalctl -k -b # 本次启动
journalctl -k --since "10 min ago"
/var/log/messages
/var/log/kern.log
/var/log/dmesg
典型格式:
[ 1.234567] usb 1-1: new high-speed USB device number 2 using ehci-pci
含义:
[ 1.234567]:系统启动后经过的秒数usb 1-1:设备名new high-speed USB device:事件描述如果是 journalctl:
Jan 10 10:00:01 host kernel: CPU0: Temperature above threshold
printk 有 8 个级别(数字越小越严重):
| 级别 | 名称 | 含义 |
|---|---|---|
| 0 | emerg | 系统不可用 |
| 1 | alert | 必须立即处理 |
| 2 | crit | 严重错误 |
| 3 | err | 错误 |
| 4 | warn | 警告 |
| 5 | notice | 正常但重要 |
| 6 | info | 信息 |
| 7 | debug | 调试 |
示例:
kernel: BUG: unable to handle page fault
kernel: WARNING: CPU: 0 PID: 1234
Out of memory: Kill process 1234 (java)
→ OOM Killer 杀进程
page allocation failure
→ 内存分配失败
slab error
→ 内核内存管理异常
BUG: soft lockup - CPU#2 stuck for 23s
→ CPU 软死锁(驱动或内核 Bug)
Kernel panic - not syncing
→ 内核崩溃(最严重)
EXT4-fs error (device sda1): ...
→ 文件系统错误
I/O error, dev sdb, sector 123456
→ 磁盘硬件或线缆问题
read-only file system
→ 文件系统被强制只读
eth0: link down
→ 网卡断开
TCP: out of memory -- consider tuning
→ 网络内存不足
device not accepting address
→ USB/PCI 设备异常
firmware bug
→ BIOS/UEFI 问题
call trace
→ 内核调用栈(定位 Bug 关键)
Out of memory: Killed process 2345 (mysqld)
→ 内存不足,优化内存或加 swap
I/O error, dev sda, sector 1024
EXT4-fs error: ...
→ 磁盘可能损坏,立即备份
Kernel panic - not syncing: Fatal exception
Call Trace:
→ 收集日志,升级内核或驱动
crash:分析内核崩溃kdump:内核转储ftrace / perf:内核级跟踪dmesg -l err,warn:只看错误和警告如果你有一段具体的内核日志,可以直接贴出来,我可以帮你逐行解读并给出原因和处理建议。