ACK集群提供节点级别的GPU诊断功能,供您进行部分GPU相关问题的故障排查。如果您在ACK Pro版集群中使用GPU节点时遇到问题,可以启用GPU节点自助诊断,采集GPU诊断的基础指标进行问题排查。本文介绍如何使用节点诊断功能,自助排查GPU节点问题,并提供nvidia-smi和XID状态码排查列表。
前提条件
已创建ACK Pro版集群。具体操作,请参见创建Kubernetes托管版集群。
确保Kubernetes集群处于正常运行中状态(登录容器服务管理控制台,在集群列表页面确认集群状态为运行中)。
启用节点诊断
您可以在故障诊断中选择待诊断的GPU节点发起节点诊断,并根据诊断报告修复问题。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择
。在故障诊断页面,单击节点诊断,然后在节点诊断页面的左上角,单击诊断。
在选择节点面板,选择节点名称,仔细阅读注意事项后选中我已知晓并同意,然后单击发起诊断。
您可以根据页面提示查看诊断进展。诊断完成后,诊断页面将显示诊断结果和诊断项,供您查看异常原因并修复问题。
如果您诊断的节点为单个GPU节点,诊断结束后诊断列表将展示GPU相关的指标报告。您可以根据诊断结果并参见根据nvidia-smi状态排查问题、根据XID状态排查问题定位和解决问题。
如果需要提交工单获取技术支持,请反馈完整的GPU节点诊断内容。
根据nvidia-smi状态排查问题
nvidia-smi(NVIDIA System Management Interface)是一个监测NVIDIA GPU设备状态的命令行实用工具,可以用于管理GPU服务器性能和健康状况。您可以根据检查报告中NVIDIASMIStatusCode的结果,参见下表,查看状态码含义及其解决方案。
nvidia-smi状态码 | 说明 | 解决方案 |
0 | 执行成功,nvidia-smi正常。 | 不涉及。 |
3 | 请求的操作在目标设备上不可用。目标节点上的设备不支持nvidia-smi,或是驱动问题。 | 在节点上查看 |
6 | 查找GPU设备的查询失败,驱动问题。 | 在节点上查看 |
8 | GPU设备电源线未正确连接,硬件问题。 | 提交工单联系ECS技术支持人员解决。 |
9 | 未加载NVIDIA驱动,驱动问题。 | 在节点上查看 |
10 | NVIDIA内核检测到中断问题。 | 在节点上查看 |
12 | NVML的共享库未找到或加载。 | 在节点上查看 |
13 | 本地NVML版本不匹配驱动。 | 在节点上查看 |
14 | infoROM已损坏,硬件问题。 | 提交工单联系ECS技术支持人员解决。 |
15 | GPU从总线脱落,硬件问题。 | 提交工单联系ECS技术支持人员解决。 |
255 | 驱动其他错误,驱动问题。 | 在节点上查看 |
-1 | 执行nvidia-smi超时。 | 在节点上查看 |
根据XID状态排查问题
XID消息是NVIDIA驱动程序向操作系统的内核日志或事件日志打印的错误报告。XID消息用于标识GPU错误事件,提供GPU硬件、NVIDIA软件或您应用程序中的错误类型、错误位置、错误代码等信息。
诊断报告中,如检查项GPU节点上的XID异常为空,表明无XID消息;如有,您可按照下表自助排查并解决问题,或提交工单获取技术支持。
自行排查列表
当遇到下列XID错误时建议依次按照如下步骤尝试解决:
尝试重新提交负载并观察XID错误是否消失。
若错误仍有发生,尝试自检代码或分析日志,确认是否由代码引入的XID错误。
若确认代码无误且问题仍然发生,请提交工单联系技术支持人员解决。
XID | 说明 |
13 | Graphics Engine Exception. 通常是数组越界、指令错误,小概率是硬件问题。 |
31 | GPU memory page fault. 通常是应用程序的非法地址访问,极小概率是驱动或者硬件问题。 |
43 | GPU stopped processing. 通常是您应用自身错误,而非硬件问题。 |
45 | Preemptive cleanup, due to previous errors -- Most likely to see when running multiple cuda applications and hitting a DBE. 通常是您手动退出或者其他故障(硬件、资源限制等)导致的GPU应用退出,XID 45只提供一个结果,具体原因通常需要进一步分析日志。 |
68 | NVDEC0 Exception. 通常是硬件或驱动问题。 |
工单排查列表
当遇到下列XID错误时,请提交工单联系技术支持人员解决,并反馈完整的GPU节点诊断内容。
XID | 说明 |
32 | Invalid or corrupted push buffer stream. 事件由PCIE总线上管理NVIDIA驱动和GPU之间通信的DMA控制器上报,通常是PCI质量问题导致,而非您的程序产生。 |
38 | Driver firmware error. 通常是驱动固件错误而非硬件问题。 |
48 | Double Bit ECC Error(DBE). 当GPU发生不可纠正的错误时,会上报此事件,该错误也会同时反馈给您的应用程序。通常需要重置GPU或重启节点来清除这个错误。 |
61 | Internal micro-controller breakpoint/warning. GPU内部引擎停止工作,您的业务已经受到影响。 |
62 | Internal micro-controller halt. 与XID61的触发场景类似。 |
63 | ECC page retirement or row remapping recording event. 当应用程序遭遇到GPU显存硬件错误时,NVIDIA自纠错机制会将错误的内存区域retire或者 remap,retirement和remapped信息需记录到infoROM中才能永久生效。
|
64 | ECC page retirement or row remapper recording failure. 与XID 63的触发场景类似。但XID 63代表retirement和remapped信息成功记录到了infoROM, XID 64代表该记录操作失败。 |
74 | NVLINK Error. NVLink 硬件错误产生的XID,表明GPU已经出现严重硬件故障,需要下线维修。 |
79 | GPU has fallen off the bus。 GPU硬件检测到掉卡,总线上无法检测该GPU,表明该GPU已经出现严重硬件故障,需要下线维修。 |
92 | High single-bit ECC error rate. 硬件或驱动故障。 |
94 | Contained ECC error. 当应用程序遭遇到GPU不可纠正的显存ECC错误时,NVIDIA错误抑制机制会尝试将错误抑制在发生硬件故障的应用程序,避免该错误影响GPU节点上运行的其他应用程序。 当抑制机制成功抑制错误时,会产生该事件,仅出现不可纠正ECC错误的应用程序受到影响。 |
95 | Uncontained ECC error. 与XID 94的触发场景类似。但XID 94代表抑制成功,而XID 95代表抑制失败,表明运行在该GPU上的所有应用程序都已受到影响。 |