温馨提示×

怎么解读linux内核日志

小樊
64
2026-10-08 08:52:35
栏目: 智能运维

解读 Linux 内核日志(kernel log)是排查系统故障、性能问题和硬件异常的重要手段。下面从日志来源、查看方式、常见内容结构、关键字解读、实战示例几个方面系统说明。


一、内核日志从哪里来

Linux 内核日志主要来自:

  1. printk() 输出
    • 内核代码中使用 printk() 打印的信息
  2. 内核子系统
    • 调度、内存、网络、驱动、文件系统等
  3. 硬件事件
    • 网卡、磁盘、CPU、PCIe、USB 等

二、如何查看内核日志

1. dmesg(最常用)

dmesg
dmesg | tail -n 50
dmesg -T        # 显示人类可读时间

注意:dmesg 显示的是内核环形缓冲区,重启后可能丢失

2. journalctl(systemd 系统)

journalctl -k               # 仅内核日志
journalctl -k -b           # 本次启动
journalctl -k --since "10 min ago"

3. 日志文件(传统系统)

/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

五、常见内核日志关键字解读

1. 内存相关

Out of memory: Kill process 1234 (java)

→ OOM Killer 杀进程

page allocation failure

→ 内存分配失败

slab error

→ 内核内存管理异常


2. CPU / 调度

BUG: soft lockup - CPU#2 stuck for 23s

→ CPU 软死锁(驱动或内核 Bug)

Kernel panic - not syncing

→ 内核崩溃(最严重)


3. 磁盘 / 文件系统

EXT4-fs error (device sda1): ...

→ 文件系统错误

I/O error, dev sdb, sector 123456

→ 磁盘硬件或线缆问题

read-only file system

→ 文件系统被强制只读


4. 网络

eth0: link down

→ 网卡断开

TCP: out of memory -- consider tuning

→ 网络内存不足


5. 硬件 / 驱动

device not accepting address

→ USB/PCI 设备异常

firmware bug

→ BIOS/UEFI 问题

call trace

→ 内核调用栈(定位 Bug 关键)


六、如何系统解读一段内核日志

步骤

  1. 看时间
    • 是否集中在某一时刻?
  2. 看级别
    • err / warn / panic?
  3. 看子系统
    • cpu / mem / disk / net / driver?
  4. 看上下文
    • 前面是否有异常触发?
  5. 看 Call Trace
    • 定位是哪个模块出问题

七、实战示例

示例 1:OOM

Out of memory: Killed process 2345 (mysqld)

→ 内存不足,优化内存或加 swap

示例 2:磁盘错误

I/O error, dev sda, sector 1024
EXT4-fs error: ...

→ 磁盘可能损坏,立即备份

示例 3:内核崩溃

Kernel panic - not syncing: Fatal exception
Call Trace:

→ 收集日志,升级内核或驱动


八、进阶工具

  • crash:分析内核崩溃
  • kdump:内核转储
  • ftrace / perf:内核级跟踪
  • dmesg -l err,warn:只看错误和警告

如果你有一段具体的内核日志,可以直接贴出来,我可以帮你逐行解读并给出原因和处理建议。

0 踩