常用 GPU 运维及故障处理
内容提要
本文讨论了NVIDIA GPU的常见错误代码(XID)及其含义,包括图形引擎异常、GPU内存页错误和驱动固件错误。还提到GPU温度过高的问题及其解决方案,如终止高温应用程序。此外,介绍了在Pod中执行nvidia-smi命令时可能出现的错误及其解决方法。
延伸解读
XID 错误码的快速定位与分类
通过 dmesg -T | grep -i "NVRM: Xid" 可以快速定位 GPU 故障。XID 错误码可分为几类:应用层错误(如 XID 13、31、43)通常由程序越界或非法访问引起,硬件问题概率较低;驱动或固件错误(如 XID 38、68)需关注驱动状态;硬件故障(如 XID 48、74、79)往往需要重置 GPU 或下线维修。理解分类有助于判断故障严重程度和响应优先级。
GPU 温度监控与过热处理
GPU 温度应保持在 85°C 以下,超过会导致锁频和性能下降。使用 nvidia-smi --query-gpu=index,temperature.gpu --format=csv,noheader 可查看各 GPU 温度。若温度超标,可终止高温应用程序,使其迁移到其他 GPU。这是一种软件层面的应急措施,但需注意可能影响业务连续性,建议结合调度策略避免频繁迁移。
NVLink/NVSwitch 报错与持久模式
当出现 NVLink、NVSwitch 报错,或 nvidia-smi 找不到设备、重启后少卡时,可检查 nvidia-fabricmanager 服务状态及日志。启用 nvidia-persistenced 持久模式能让驱动保持加载,大幅缓解此类问题。这提示我们,对于多卡互联环境,保持驱动常驻是预防掉卡和通信故障的有效手段。
Pod 中 nvidia-smi 报错的版本兼容性
在 Pod 中执行 nvidia-smi 出现 'Function Not Found' 错误,通常是因为容器内 CUDA 版本与节点不匹配。解决方法是通过设置 LD_LIBRARY_PATH 环境变量并重启应用。这提醒我们在容器化 GPU 环境中,需确保 CUDA 版本一致性,避免因库路径问题导致工具无法正常工作。
Q&A
XID错误码是什么?
XID是NVIDIA的错误码,用于定位GPU故障。
常见的XID错误有哪些?
常见的XID错误包括图形引擎异常(XID 13)、GPU内存页错误(XID 31)和驱动固件错误(XID 38)。
如何解决GPU过热问题?
可以通过终止高温应用程序或将其迁移到其他GPU上来解决GPU过热问题。
如何查看GPU的温度?
可以使用命令nvidia-smi --query-gpu=index,temperature.gpu --format=csv,noheader查看GPU温度。
在Pod中执行nvidia-smi时出现错误怎么办?
出现'Function not Found'错误通常是由于CUDA版本不匹配,可以通过设置环境变量并重启应用来解决。
GPU温度超过85°C会有什么影响?
GPU温度超过85°C会导致性能下降和锁频问题。