watchdog: BUG: soft lockup 表示某个 CPU 长时间没有让出执行权。它可能来自内核缺陷、驱动、中断风暴或极端资源压力,不能仅靠提高 watchdog 阈值解决。
保留现场证据
journalctl -k --since '-30 min'
dmesg -T | grep -A20 -B5 -i 'soft lockup'
cat /proc/interrupts
cat /proc/pressure/cpu
记录受影响 CPU、重复出现的内核函数、内核版本和最近变更。若多次堆栈都指向同一驱动或模块,优先检查对应版本的已知问题。
关联资源与硬件
mpstat -P ALL 1
perf top -a
ethtool -S eth0 | grep -Ei 'drop|miss|error'
中断集中、包速率突增或存储超时都可能触发长内核路径。虚拟机还需结合宿主机 steal time 和云平台事件判断。
处置原则
- 节点仍响应时先隔离流量并采集日志
- 避免在未知状态下连续执行 SysRq 或强制转储
- 对比内核、驱动和固件升级前后的变化
- 只在确认误报后调整
watchdog_thresh
收尾清单
将堆栈、硬件信息、负载曲线和变更记录放入事件报告。修复后做相同压力复测,并观察是否还有 RCU stall、hung task 或机器检查异常。