AI服务器集群运维:日常巡检与故障排查清单
AI服务器集群运维不是等训练任务挂了再救火,而是把GPU状态、网络链路、存储挂载和温度功耗做成固定巡检项,每天跑一遍,异常早发现。
下面这套清单适合用Linux系统、带NVIDIA GPU的集群,Slurm或Kubernetes调度环境都适用。
先确认巡检环境和权限
开始前确认三件事:能通过SSH登录每台计算节点;
有sudo权限执行nvidia-smi、ipmitool、smartctl等命令;
知道集群的BMC管理网段和登录方式。
如果节点数量多,建议把巡检脚本放在管理节点上,用pdsh或ansible批量执行。
单节点手动巡检时,先看整体状态:
nvidia-smi
nvidia-smi -q -d TEMPERATURE,POWER,ECC
预期结果是每张GPU都能列出型号、显存占用、温度和功耗,没有ERR或N/A。
如果某张卡消失或显示Unknown Error,先别急着重启,记录PCI地址后查BMC日志。
GPU健康检查:掉卡和ECC是重点
nvidia-smi只能看到驱动层状态,掉卡往往在更底层。
用lspci确认GPU是否还在PCI总线上:
lspci | grep -i nvidia
正常应列出每张GPU和NVLink桥接设备。
如果数量比物理卡少,说明卡在PCI层就掉了,常见原因是供电不稳、散热导致降频保护或PCIe插槽接触问题。
ECC错误要定期看累计值:
nvidia-smi -q | grep -A 3 "ECC Errors"
单比特ECC错误可以观察,如果短时间内持续增长,或者出现不可纠正错误(Uncorrectable),应把该卡标记为待维护,迁移训练任务后再处理。
网络与存储:训练卡住常在这里
训练任务hang住时,先查网卡链路速率和丢包:
ip -s link show
ethtool <网卡名> | grep Speed
对比所有节点的链路速率是否一致,比如都应该是200000Mb/s或400000Mb/s。
速率降级通常意味着光模块或线缆有问题。
存储方面检查挂载点和延迟:
mount | grep -E "nfs|cifs"
df -h
如果训练数据盘是NFS,
用time dd if=/dev/zero of=/mnt/data/testfile bs=1M count=100测一下写入速度,
明显低于平时就要联系存储侧排查。
温度功耗与BMC带外管理
GPU温度持续超过85℃会触发降频,直接影响训练速度。
用nvidia-smi -q -d TEMPERATURE看每张卡的温度,同时通过BMC看整机进风口温度:
ipmitool -I lanplus -H -U <用户名> -P <密码> sensor list | grep -i "inlet\|fan"
如果进风口温度正常但GPU温度高,检查风扇转速策略和机箱风道;
如果进风口温度就偏高,先查机房空调。
功耗方面用nvidia-smi -q -d POWER看每卡实际功耗是否接近上限,长期满载降频要考虑电源冗余是否足够。
避坑与验证
- 不要直接
reboot掉卡节点,先通过BMC看硬件日志,确认是单卡问题还是整机问题。 - 批量巡检脚本里加超时,比如
timeout 10 nvidia-smi,避免某台节点无响应卡住整个巡检。 - 修改风扇策略或电源模式前记录原值,方便回滚。
- 巡检结果落盘保存,用
date +%F命名,方便对比历史趋势。
验证巡检是否有效:跑完一轮后,确认每台节点的GPU数量、链路速率、挂载点和温度都在预期范围内;
对异常项记录工单并跟踪处理结果。
坚持按清单执行,AI服务器集群运维就能从被动救火变成主动发现。