在Linux系统运维中,dmesg是一款高频使用的经典工具,全称为display message或driver message,主要用于输出内核的启动信息与运行时状态。简单来说,它就是系统内核的“运行日志”,完整记录了硬件从初始化到运行过程中的关键事件。想要快速掌握一台主机的资源占用情况——例如CPU、内存、磁盘、网络等,通过dmesg结合grep过滤,往往比翻阅大量配置文件更为直观。下面列举的几种常见应用场景,基本能够覆盖日常运维中的大部分需求。

检测内存使用情况
dmesg | grep -i memory
该命令会输出物理内存总量、内存布局、交换分区大小等核心数据。如果出现类似“Out of memory”的日志,则表明内存资源已趋于紧张。检查CPU详细信息
dmesg | grep -i cpu
处理器型号、核心数量、步进版本、特性标志(例如是否支持虚拟化)都会在此列出。若要确认机器是否为双路架构、是否开启超线程,查看这里最为准确。查看磁盘状态与错误
dmesg | grep -i disk
硬盘型号、接口类型、分区表信息以及I/O错误都能捕获。当系统突然出现卡顿,先执行这条命令,很可能会发现磁盘报错记录。获取GPU信息与驱动状态
dmesg | grep -i gpu
显卡型号、驱动加载状态、显存容量,甚至驱动崩溃日志都会在此呈现。对于运行深度学习或图形渲染的机器,这条命令是排查问题的首选入口。查看网络设备及链路状态
dmesg | grep -i net
网卡型号、驱动版本、链路状态、中断分配等信息一览无余。如果网络出现时断时续的问题,留意是否有“link down”或“firmware”相关提示。查看系统负载历史记录
dmesg | grep -i load
尽管uptime和top也能查看当前负载,但dmesg中记录的负载数据更偏向历史快照,尤其是内核在启动阶段报告的负载均值,能够反映系统启动时的资源压力。定位硬件故障信息
dmesg | grep -i error
不仅包含内存和磁盘错误,PCIe设备、USB控制器甚至ACPI的异常都会在这里留下痕迹。当怀疑硬件存在问题时,这条命令是必查项。
需要注意的是,不同内核版本、不同硬件平台下,dmesg的输出内容可能存在差异,部分信息可能被内核参数屏蔽,或因日志缓冲区大小限制而被覆盖。如果机器已长期运行,建议使用journalctl -k查看更完整的持久化内核日志。不过对于日常快速排查而言,dmesg | grep这套组合拳已经足够高效。
