监控与故障

导语:跑训练/推理时,GPU利用率、显存、掉卡这些指标怎么看?故障如何快速定位和处理?本文从实战视角,拆解三类高频问题,给出可操作的排障流程,并比较租用与自建场景的差异,帮你少走弯路。

一、监控指标全景:利用率/显存/功耗/温度

GPU监控的第一步是理解四个核心指标。利用率表示计算核心的忙碌程度,显存占用表示已分配显存大小,功耗反映实时电力消耗,温度则是芯片表面温度。以下表格给出常见异常与告警建议:

指标 含义 常见异常 告警建议
GPU利用率 计算核心活动时间占比 训练时长期过低、波动剧烈 连续10分钟低于10%(需结合负载)
显存占用 已分配显存容量 接近上限、OOM 超90%并继续增长
功耗 典型功率范围(如~300W) 低于预期或异常升高 与利用率严重不匹配
温度 核心温度 过热降频、黑屏 持续超85°C

注意:这些阈值是经验性建议,不同型号有差异。在实际判断中,还需要结合任务类型。比如推理任务,利用率可能只有30%但吞吐已达标,这时纠结利用率没有意义。当算力从“按GPU数量”转向“按Token产出”计费时,每分每秒的产出效率比单纯的利用率更有价值。正如行业观察指出的,竞争核心正从GPU数量走向Token制造效率。

二、常用监控工具:nvidia-smi/NVML/DCGM/云平台面板

选择工具取决于你的角色。命令行工具适合快速排查,平台面板适合长期观察。下表列出主要工具:

工具 用途 关键命令/说明
nvidia-smi 命令行查看 nvidia-smi 查看状态;nvidia-smi -l 1 每秒刷新
NVML 编程接口 用于脚本采集,如nvidia-smi --query-gpu=utilization.gpu,memory.used
DCGM 数据中心级监控 dcgmi -r 运行诊断,支持遥测与故障检测
云平台面板 租用场景 提供历史曲线与告警

实际使用中,如果只是临时看,nvidia-smi足够;如果要在生产环境持续监控,可部署DCGM或自研采集器。对于租用GPU,云平台通常已经内置了基础监控,你只需要会看告警即可。工具选型没有绝对标准,关键是能快速拿到“利用率、显存、温度”这三个数。

三、利用率异常排查:训练吞卡/推理低效

利用率低不一定代表GPU有问题,有可能是进程根本没跑满。先按四步走:

  1. nvidia-smi确认当前哪些进程在占用GPU,以及利用率是否长时间为0。
  2. topps查看CPU利用率,确认是否存在数据加载瓶颈。
  3. 检查存储或网络是否成为限制因子。
  4. 如果训练吞吐不稳定,尝试增大batch size或启用数据预取。

对于训练任务,利用率频繁波动可能意味着多个进程在争抢资源,或者分布式训练中某张卡拖慢整体。推理场景利用率低很常见,因为请求是稀疏的。此时不应盲目加大并发,而应看延迟与吞吐是否符合业务目标。在Token计费时代,真正要盯的是每百万Token成本,而不是GPU是否转满。这就解释了为什么有的推理服务利用率不高却依然盈利。

四、显存问题实战:OOM/碎片/泄漏

OOM(out of memory)是训练和推理中最常见的报错之一。常见原因包括:模型参数量与显存容量不匹配、batch size过大、显存泄漏或碎片化。排查时先用nvidia-smi查看当前显存占用,确认是峰值超限还是持续增长。

原因 特征 应对
模型过大 加载时直接OOM 换小模型或降低精度
batch过大 反向传播时OOM 减小batch或梯度累积
泄漏 训练过程显存缓慢增长 检查显存释放逻辑
碎片化 显存占用不高但仍报OOM 使用显存整理或重启进程

优化手法包括:混合精度、梯度累积、torch.cuda.empty_cache()、设置max_split_size_mb等。注意这些是通用建议,具体还需结合框架文档。有时只是简单重启进程就能解决碎片问题,但长期仍要优化分配。

五、掉卡故障处理:NVML错误/设备消失/PCIe问题

掉卡的典型现象:nvidia-smi列出设备但状态异常,或直接少一张卡;应用返回CUDA error: device lost。系统性排查步骤如下:

  1. 查看系统日志:dmesg | grep NVRM,确认是否有NVRM错误信息。
  2. 检查PCIe设备是否还在:lspci | grep -i nvidia,看是否有未知设备。
  3. 尝试软件复位:nvidia-smi --gpu-reset -i <id>(注意在脱离运行任务时执行)。
  4. 检查电源和散热,过热或供电不足都可能导致掉卡。
  5. 如果上述都无效,可能是硬件故障,需关机更换设备或联系云厂商。

在多卡环境中,掉卡往往导致训练中断。为了防止扩散,建议设置心跳检测与自动重试,并在框架中启用弹性训练,让故障卡被自动剔除。记住不存在100%避免掉卡的方法,但完善的监控和快速恢复机制能让损失最小化。

六、多卡与租用场景:多卡同步/租用环境排障

多卡环境下的故障定位相对复杂。同步失败时,往往会显示某张卡超时,此时需要用分布式训练框架的日志定位是哪个rank出错。可以用nvidia-smi -q -d GPU查看每张卡的详细信息,比如温度、EEC错误。常见故障有:NVLink通信异常、PCIe中断、GPU时钟波动。

租用与自建在监控上存在天然差异:

维度 租用GPU 自建服务器
监控方式 使用平台面板,自定义受限 自由部署DCGM等
排障权限 无法物理操作,依赖工单 可自行重启、换卡
责任划分 硬件故障归平台 自己全权负责

租用场景下,你应当优先使用平台提供的诊断工具,并与客服沟通。算家云等平台将算力包分为专业版与青春版,专业版更强调长期稳定运行,可能提供更好的监控与支持。在急用时,可以考虑短期测试版,但生产环境建议选择专业版。总之,选择租用还是自建,要看你对监控细度和响应速度的要求。

小结:监控与排障是一个循环。建议先设定合理的告警阈值,然后定期演练恢复流程。如果你有购买或租用需求,可参考租用市场硬件选购以及托管服务