GPU故障诊断与恢复FAQ

本文介绍ACS集群中GPU故障诊断与恢复的常见问题及其解决方案。

如何及时获取故障通知?

ACS会通过Kubernetes事件(Event)、状态(Condition)等方式上报故障通知,详见:ACS自定义事件ACS Pod自定义conditionGPU-HPN节点故障监控和恢复。建议您搭配kube-eventer配置告警条件以便及时处理,详见kube-eventer

如何排查Pod内驱动等软件异常问题?

问题现象

常见的软件异常现象表现为:

  • 在 Pod 中执行 nvidia-smi 命令时卡住无响应。

  • 应用程序无法正常调用 GPU 资源。

ACS集群会对GPU硬件层面的故障进行主动检测并通知,不包括GPU驱动相关的软件异常。这类异常的排查与恢复可参考以下步骤。

排查方式

  1. 通过dmesg命令查找关键字:在出现异常的容器内运行以下命令来查看系统消息缓冲区的内容,并搜索与驱动相关的错误信息。

    dmesg | grep -E 'BUG|Panic|fault'

    关注输出中的错误信息或panic相关的关键字如BUGPanicfault等,这通常意味着容器内核发生错误。

  2. 结合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]",

解决方案

  1. 重新创建Pod:若确认是由于驱动Panic引起的故障,可首先尝试删除并重新创建受影响的Pod。

  2. 提交工单协助排查:如果重新创建Pod后问题仍然存在,或者您需要更深入的帮助来定位和解决问题,则建议收集相关信息(如dmesg输出等)并提交工单。技术团队将基于提供的资料进行分析,并提供针对性的解决方案。

在使用GPU资源时遇到异常,但没有收到故障通知,该如何处理?

若您在使用ACS GPU资源过程中遇到疑似故障,且未收到ACS发送的故障通知,请您提交工单进行处理。