目的:复现视频生成时,抓取断电/崩溃前最后时刻的 GPU、系统、内核状态。 针对上次事故教训:整机断电时本地日志瞬间丢失(journald "uncleanly shut down"), 唯一可靠的是实时 UDP 外发——数据在掉电前一秒已到本机。
GPU 机 (192.168.31.25) DSH 机 (192.168.31.76)
crash_monitor.sh ──UDP 9333──▶ crash_monitor_collector.py
每 2 秒采样: 监听 0.0.0.0:9333
· 系统负载 loadavg 落盘:
· 内存 total/free/avail dl-hub/06-ComfyUI-H3运维记录/crash-monitor/gpu_monitor.log
· GPU: 温度/功耗/利用率/显存/PCIe gen/width
· 内核错误行实时转发: Xid/NVRM/panic/Oops/
BUG/hung_task/soft lockup/thermal/OOM/Killed
(dmesg -w 有权限则生效,无权限跳过)
| 组件 | 位置 |
|---|---|
| GPU 机监控脚本 | GPU 机 /home/zyw/crash_monitor.sh(本地副本 ~/Downloads/crash_monitor_gpu.sh) |
| 本机收集器 | 本机 /home/zyw/Downloads/crash_monitor_collector.py(后台 job bash-3) |
| 数据落盘 | /home/zyw/Downloads/dl-hub/06-ComfyUI-H3运维记录/crash-monitor/gpu_monitor.log |
# GPU 机启动(nohup 脱离终端,掉 SSH 也不停)
nohup bash /home/zyw/crash_monitor.sh > /tmp/crash_monitor.out 2>&1 &
# GPU 机停止
bash /home/zyw/crash_monitor.sh stop
# (兜底)pkill -f crash_monitor
# 本机收集器启动(DSH 机)
python3 /home/zyw/Downloads/crash_monitor_collector.py
S|<UTC时间>|load=1m,5m,15m|mem_t=总kB,f=空闲kB,a=可用kB|gpu=温度_功耗W_利用率%_显存MiB_gen_宽度
KERNEL|<UTC时间>|<内核错误行>
示例:S|2026-09-03T07:47:41.918Z|load=0.01,0.04,0.10|mem_t=32653456kB,f=26499676kB,a=29305272kB|gpu=50_10.18_0_154_1_8
解读:GPU 50°C、功耗 10.18W、利用率 0%、显存 154MiB、PCIe gen=1、width=8。 (空闲时 gen=1 正常;满载推理时应看到 gen↑、功耗↑、利用率↑。)
pgrep -af crash_monitor)+ 本机收集器在跑(job 或 ss -ulnp | grep 9333);dmesg -w 权限(sudo 组可看;zyw 在 adm 组);现象:用户跑生成时 ComfyUI 再次断联,GPU 机第三次整机断电(前两次 15:00:25、本次 16:52:50)。
监控捕获的关键数据(本机日志 gpu_monitor.log,1982 条采样,2s 粒度):
结论:第三次同一模式(满载推理中瞬时断电、无任何软件/内核/温度/链路前兆), 基本锁定 电源侧故障(PSU 保护触发/供电不稳),与 GPU、驱动、PCIe、温度均无关。
建议:优先排查/更换 PSU,检查 12V 供电线与插排接触;考虑 UPS 记录市电事件。
现象:第三次整机挂死(16:52:50),但用户观察到显示器仍有信号、操作无响应 → 推翻"断电"结论,确认为内核/驱动硬挂死(机器有电,系统无响应)。WOL 无效 + 显示器有信号 = 机器处于 S0 挂死,非 S5 关机。
重启后检查结果:
修正后的根因方向:三次均为满载推理时瞬间硬挂死、无任何软件/温度/链路前兆、机器有电。 监控数据(临终 100%利用率/180W/72°C/Gen5×8/零错误行)排除了 PCIe 掉线、过热、驱动报错; 结合 PCIe 链路速率异常(本次开机 Gen4 枚举 vs 运维基线 Gen5),高度怀疑显卡供电/接触或 电源轨在满载时不稳定,导致 GPU 驱动/内核死锁(区别于上次仅"掉总线"的轻症,本次为拖死整机)。
后续措施:
现象:用户报告"突然重启了"。监控数据在 23:29:30.953 戛然而止(本机时间)。
死亡瞬间数据(本次监控全程 8327 条采样,2s 粒度):
与前三事故完全同模式:满载推理中瞬间死亡、机器有电(显示器有信号)、零内核告警、 PCIe 链路正常。第 4 次确认:指向电源/供电在满载时的硬件级故障(PSU 保护或电源轨失稳), 非软件、非驱动、非过热、非 PCIe 掉线。
待机器恢复后检查:rasdaemon 数据库(本次已装,若固件写入 BERT/CPER 将可解码具体错误类型)。
临终数据(23:29:30.953 最后采样):GPU 100%/180W/82°C/显存11GB/PCIe Gen5×8 稳定, 随后数据流戛然而止。本次为rasdaemon 首次在场的事故,结果:
| 检查项 | 结果 |
|---|---|
| rasdaemon(MCE/内存/PCIe AER/Extlog) | 全部零错误 |
| BERT 固件记录 | 无(上次有但 Skipped) |
| 内核错误行(2s 粒度监控全程) | 0 条 |
| journal 最后记录 | 15:25:01 UTC 常规 cron,之后正常日志停止 |
| journald | uncleanly shut down(非正常关机) |
| 恢复 | 3 分钟内回到在线(用户侧重启/掉电自恢复) |
四次事故共性(结论性):
建议(按优先级):
sudo nvidia-smi -pl 150 限功耗跑一轮,若限功耗后不再死机 → 电源问题实锤;上报时刻:用户 9/5 报告"突然重启",查询到内核级报错——前几次"零错误瞬间死亡" 其实是 Xid 79 掉总线后驱动直接触发 Xid 154 OS 重启,不留错误记录的假象。
铁证(三次掉总线,全部同款):
9/5 06:48:59 Xid 79, name=nvidia-smi, GPU has fallen off the bus
9/5 10:55:19 Xid 79, GPU has fallen off the bus
9/5 12:26:51 Xid 79, GPU has fallen off the bus ← 本次上报
9/5 ... Xid 154, GPU recovery action changed to OS Reboot
API_GPU_ATTACHED_SANITY_CHECK failed、UVM slab BUG、Flip event timeout;结论:非电源、非插座、非过热、非软件 bug —— 这是 8 月修过的 "GPU 掉总线"复发(NVreg_DynamicPowerManagement=0x00 已确认生效, Secure Boot 关闭,无拦截),剩余唯一怀疑:显卡/PCIe 物理接触。
建议(物理排查):