dmesg -l err,warn可精准筛选内核中真正值得警惕的硬件与资源类告警,再配合-t加时间戳、-w实时监控及grep -i关键词过滤(如firmware、timeout、oom、phy、dma),有效避开info/debug等无关信息,抓取瞬态故障。

只显示 err 和 warn 级别的硬件/资源日志
内核日志默认混杂大量 info、debug 甚至 notice 级消息,关键错误容易被淹没。-l 参数是硬性筛选输出级别,不是压制日志生成:
- dmesg -l err,warn:最常用组合,仅输出错误(err)和警告(warn)两级,覆盖绝大多数硬件异常、驱动 probe 失败、IO 超时、内存分配失败等资源类问题
- 老内核(如 CentOS 7 的 3.10)不支持逗号分隔多级,可拆成 dmesg -l err 或 dmesg -l warn 单独查
- 加 --color=always 让 err 红显、warn 黄显,一眼识别严重程度
用关键词精准锚定硬件与资源相关报错
仅靠级别还不够——err 可能来自调度器或文件系统。必须结合上下文锁定硬件/资源线索:
- 先缩小范围:dmesg -l err,warn | grep -i,避免对全量日志做耗时过滤
- 必查硬件关键词:firmware、phy、timeout、reset、failed、irq、link down、out of memory、DMA、no device found
- 按设备类型追查:grep -E "(nvme|ata|pci|usb|iommu|acpi)",再叠加 failed|error|timeout
- 驱动名要具体:e1000e、mlx5_core、r8169、i40e,避免漏掉专属错误(如 "mlx5_core: firmware fatal error")
带时间戳 + 实时监控,抓瞬态资源故障
硬件链路震荡、OOM 触发、PCIe AER 错误常在几秒内发生,静态快照容易错过:
- dmesg -T -l err,warn -w:带本地时间戳(-T)、只输出 err/warn、持续监听(-w)
- 流式过滤示例:dmesg -T -l err,warn -w | grep --line-buffered -i "timeout\|oom\|phy\|dma"
- -w 不自动退出,需 Ctrl+C 中断;生产环境建议重定向到文件,再用 tail -f 查看
- 注意:-f 已弃用,某些内核会卡住,一律用 -w
区分真故障与干扰信号
同一行日志可能对应不同严重性,需结合现象判断:
- "link down" 出现一次可能是插拔,频繁交替(down→up→down)大概率是物理层问题(网线、SFP、供电)
- "Out of memory: Kill process..." 是 OOM Killer 动作,但不等于内存真不足——要立刻补查 cat /proc/meminfo 和 systemctl status systemd-oomd
- "ACPI: EC: GPE storm detected" 多数是 BIOS bug,非紧急,不用干预
- 连续出现三次 "buffer I/O error" 往往预示磁盘掉块,比单次 err 更危险











