一台 Ubuntu 24.04.3 LTS 服务器,今天看监控的时候发现最近几天CPU的温度平均50多℃,平时这台机器没啥负载一直是43℃左右,现在还是冬天,有些异常。
CPU温度异常:Zabbix

排查:top
top 命令发现 CPU使用率变高
PID 为 17的名为 ksoftirqd/0 的进程 CPU 使用率达到了100%

排查:perf
发现 ksoftirqd 通过 tasklet_action 处理无线网卡 ath10k 的软中断任务时,导致 CPU 占用率飙升
# perf record -a -g -p 17 -- sleep 30
# perf report
展开占用率最高的项目

排查:journalctl
查看日志发现无线网卡设备确实有异常日志
# journalctl -k | grep -i ath10k
12月 25 02:38:08 2500U kernel: ath10k_pci 0000:04:00.0: PCIe Bus Error: severity=Correctable, type=Physical Layer, (Receiver ID)
12月 25 02:38:08 2500U kernel: ath10k_pci 0000:04:00.0: device [168c:0042] error status/mask=00000081/00006000
12月 25 02:38:08 2500U kernel: ath10k_pci 0000:04:00.0: [ 0] RxErr (First)
12月 25 02:38:08 2500U kernel: ath10k_pci 0000:04:00.0: [ 7] BadDLLP
12月 25 02:39:11 2500U kernel: ath10k_pci 0000:04:00.0: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Receiver ID)
12月 25 02:39:11 2500U kernel: ath10k_pci 0000:04:00.0: device [168c:0042] error status/mask=00000040/00006000
12月 25 02:39:11 2500U kernel: ath10k_pci 0000:04:00.0: [ 6] BadTLP
12月 25 02:39:11 2500U kernel: ath10k_pci 0000:04:00.0: AER: Error of this Agent is reported first
12月 25 02:40:06 2500U kernel: ath10k_pci 0000:04:00.0: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Transmitter ID)
12月 25 02:40:06 2500U kernel: ath10k_pci 0000:04:00.0: device [168c:0042] error status/mask=00001080/00006000
12月 25 02:40:06 2500U kernel: ath10k_pci 0000:04:00.0: [ 7] BadDLLP
12月 25 02:40:06 2500U kernel: ath10k_pci 0000:04:00.0: [12] Timeout
2025-12-29T10:17:12.792014+08:00 2500U kernel: ath10k_pci 0000:04:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
2025-12-29T10:17:17.911975+08:00 2500U kernel: ath10k_pci 0000:04:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
2025-12-29T10:17:23.033044+08:00 2500U kernel: ath10k_pci 0000:04:00.0: PCIe Bus Error: severity=Correctable, type=Physical Layer, (Receiver ID)解决方法
关掉无线网卡接口后,CPU占用率恢复正常,观察一会监控CPU温度也恢复到47℃左右,说明问题出在 ath10k 上。
物理层错误:表示网卡在物理层(如信号传输)发生 34 万次错误,严重异常。
MAC层错误:表示接收数据包的 MAC 层错误超过 370 万次,远超正常范围。
这台机器的 WiFi 天线之前被人动过,影响了信号传输。暂时禁用。

# ip link set wlp4s0 down
# ethtool -S wlp4s0 | grep error
d_phy_error: 342436
d_rx_mpdu_errors: 3712497