发布于2026-07-15 阅读(0)
扫一扫,手机访问
dmesg这个命令,说白了就是Linux系统用来展示内核启动信息和运行时状态的“日志窗口”。当系统出现CPU异常时,它往往是第一手线索来源。那么,怎么从这一大堆日志里准确揪出CPU相关的问题呢?下面这几个方法,基本能覆盖大多数排查场景。

最直接的做法,就是拿grep在dmesg输出里过滤。比如:
dmesg | grep -i "cpu|processor|core|thread"
这条命令会把所有包含“cpu”“processor”“core”“thread”的行都列出来。注意加上-i忽略大小写,因为不同内核版本、不同驱动输出的写法可能不一样。扫一眼这些行,基本能对CPU的初始状态有个大致判断。
lscpu,看看系统到底认出了什么dmesg里记录的CPU信息,和实际系统看到的可能不完全一致。这时候可以跑一下lscpu:
lscpu
它会告诉你CPU型号、核心数、线程数等详细信息。如果你在dmesg日志里看到类似“CPU0: 只检测到2个核心”之类的信息,但lscpu显示有4个核心,那就得留个心眼了——可能是驱动加载失败、ACPI表异常,或者硬件本身有缺陷。
sensors来验证CPU温度过高是很多故障的诱因。如果你的系统装了lm-sensors,直接用:
sensors
如果dmesg里频繁出现“thermal throttling”“critical temperature”之类的警告,再配合sensors看看实际温度,散热问题基本就跑不掉了。
toptop或htop可以实时看到CPU使用率。但别忘了,dmesg里也可能留下线索——比如某个进程在启动时就报出“soft lockup”“hard lockup”这类信息,说明CPU在处理某些任务时出现了死循环或者长时间不响应。这时候光靠top看负载是治标不治本的,得顺着dmesg里的异常进程ID去排查。
这仨词基本是CPU硬件故障或兼容性问题的“报警器”。直接搜:
dmesg | grep -i "error\|exception\|fault"
如果看到类似“Machine Check Exception”“CPU: 0x0 error”“uncorrected error”这样的内容,大概率是CPU内部缓存、内存控制器或者总线出了问题。这种日志出现一次可能只是偶发,但如果反复出现,就得考虑换硬件了。
cpufreq节点CPU频率突然异常波动,可能是电源管理策略或者热保护机制触发了。直接看当前运行频率:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
如果dmesg里同时出现“cpufreq: detected”“ACPI: Processor”之类的日志,两者一对照,就能判断是BIOS设置的限制、内核调频驱动的问题,还是散热导致的降频。
说到底,dmesg并不是万能药,但它能提供系统启动和运行期间最原始、最可靠的内核视角。把上面这几个“抓关键词+对照命令”的方法用好,绝大多数CPU层面的异常都能快速定位到根源。下次碰到机器莫名卡顿、死机或者性能异常,不妨先从dmesg找找线索。
下一篇:nohup命令的输出日志如何分割
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8