本文介绍ACS集群中GPU故障诊断与恢复的常见问题及其解决方案。
如何及时获取故障通知?
ACS会通过Kubernetes事件(Event)、状态(Condition)等方式上报故障通知,详见:ACS自定义事件、ACS Pod自定义condition、GPU-HPN节点故障监控和恢复。建议您搭配kube-eventer配置告警条件以便及时处理,详见kube-eventer。
如何排查Pod内驱动等软件异常问题?
问题现象
常见的软件异常现象表现为:
在 Pod 中执行
nvidia-smi命令时卡住无响应。应用程序无法正常调用 GPU 资源。
ACS集群会对GPU硬件层面的故障进行主动检测并通知,不包括GPU驱动相关的软件异常。这类异常的排查与恢复可参考以下步骤。
排查方式
通过
dmesg命令查找关键字:在出现异常的容器内运行以下命令来查看系统消息缓冲区的内容,并搜索与驱动相关的错误信息。dmesg | grep -E 'BUG|Panic|fault'关注输出中的错误信息或panic相关的关键字如
BUG、Panic、fault等,这通常意味着容器内核发生错误。结合dmesg上下文判断是否与GPU驱动有关:在这些panic日志附近通常会打印执行命令的Call Trace信息或RIP(Return Instruction Pointer)信息,您可以在这些信息中搜索是否存在与
nvidia相关的关键字。例如:RIP: 00**:_nv0******rm+0x4**/0x9** [nvidia]" Call Trace:", ?_nv******rm+0x**/0x9** [nvidia]", ?_nv******rm+0x**/0x1** [nvidia]", ?_nv******rm+0x**/0xa** [nvidia]",
解决方案
重新创建Pod:若确认是由于驱动Panic引起的故障,可首先尝试删除并重新创建受影响的Pod。
提交工单协助排查:如果重新创建Pod后问题仍然存在,或者您需要更深入的帮助来定位和解决问题,则建议收集相关信息(如
dmesg输出等)并提交工单。技术团队将基于提供的资料进行分析,并提供针对性的解决方案。
在使用GPU资源时遇到异常,但没有收到故障通知,该如何处理?
若您在使用ACS GPU资源过程中遇到疑似故障,且未收到ACS发送的故障通知,请您提交工单进行处理。
该文章对您有帮助吗?