文档首页> 技术教程> dmesg 里的硬件报错别忽略

dmesg 里的硬件报错别忽略

发布时间:2026-05-10 11:34        更新时间:2026-05-11 05:18
内核日志是硬件出问题时最早开口的地方。可惜 dmesg 平时很少有人翻,多数人第一次认真看它,是在机器已经宕机之后。它记录在内存里,读取不占磁盘,代价是重启即清空。 一、它是什么 dmesg 打印内核环形缓冲区的消息,硬件报错、驱动异常、OOM(内存不足触发杀进程)都记在这里。缓冲区容量有限,新消息会挤掉旧消息,所以要及时看,别攒着。dmesg -T 把时间戳转成人类可读的格式;排查硬件问题的顺序,很多时候就是先看 dmesg,再看监控,最后上机。 二、常见报错样本 I/O error, dev sda, sector 123456:块设备读写失败,可能是盘坏或链路问题,反复出现必须处理。mce: Machine Check Exception:CPU 或内存的机器检查异常,多半指向内存条,配合 EDAC 信息可以定位到具体通道。NIC Link is Down:网卡链路抖动,偶发可忽略,频繁出现要查网线与交换机端口。task blocked for more than 120 seconds:进程长期阻塞,常与存储 IO 挂起相关。同样的日志在高负载机器上未必异常,解读要结合机型和负载。每类报错的处理路径不同,先把关键词记准,再去查对应模块。 三、什么时候联系处理 单次偶发的报错记录下来观察即可;同一类报错短期内重复出现,尤其 I/O error 和 MCE,就该提报障了,把时间点和报错原文附上,别只说"机器有问题"。报障前先自查最近一次变更,固件、驱动、内核升级后出现的新报错要排除自身原因。顺云用户可以直接在官网工单附上日志片段,售后定位会快很多。 四、记录习惯 巡检时把 dmesg --level=err,warn 的输出存档,每次对比有没有新增;重启会清空缓冲区,动手前先 dmesg > /var/log/dmesg-$(date +%F).log 留底,归档保留三个月,对比趋势足够用。巡检脚本里过滤的关键词列表定期更新,把新出现的报错模式补进去。 dmesg 不会主动喊人。把它加进巡检脚本,硬件问题才不至于拖到宕机才被发现。