# 故障诊断
当训练/推理业务出现故障时，可以首先使用日志诊断对故障进行定界。日志诊断结果可给出根因节点分析、故障事件分析、建议修复方案等内容。
日志诊断依赖Ascend FaultDiag故障诊断工具。工具的安装及使用参考：[Ascend FaultDiag故障诊断工具-安装与升级](https://www.hiascend.com/document/detail/zh/mindcluster/2600/faultdiag/faultdiagug/docs/zh/faultdiag/installation_guide.md)。
根据日志诊断结果分析故障原因，会有以下情况：
1. 查看"故障事件分析"中打印的错误日志，查看是否有明确的ERROR、Traceback报错，可能为训练脚本、Python基础语法等问题，一般可由用户自行闭环。
2. 查看"故障事件分析"中打印的错误日志，查看是否有昇腾错误码。**格式为EXXXXX** ，具体含义及相关处理参考：[故障处理-故障码参考](https://www.hiascend.com/document/detail/zh/canncommercial/900/maintenref/troubleshooting/troubleshooting_0225.html)。
3. 查看"根因节点分析"中打印的诊断结果，如果包含"**部分节点发生RoCE重传超次** "，可以按照以下场景处理：
   - 参考[监控告警](https://support.huaweicloud.com/resmgmt-modelarts/resmgmt-a5_0012.html)查看是否出现"NPU网口闪断"、"交换机闪断"、"光模块信息丢失"等网络侧告警，如果有，联系华为工程师进行处理；
   
   - 如果没有任何网络域告警，可以按照以下方法排查处理：
     - 在根因节点分析-首错节点对应的plog日志中执行**grep 'cqe err stat\\\[12\\\]' -rn ${plog路径}** ，查看重传超次链路（打印该日志的是本端节点，ip:\[xx\]中打印的是对端节点）。如果重传超次链路很多，且对端节点IP不唯一，有可能是网络拥塞。
       如果对端节点IP都指向同一个节点，查看对端节点是否有"NPU丢失"、"系统崩溃"等硬件告警。
       
     
     - 如果训练/推理业务过程中有通过**hccn_tool -g -stat -i ${NPU id} -u ${IO DIE id} -p ${PORT id}**采集网口指标，查看PFC反压报文数反压帧（core_mib_txpfcpkts字段），查看PFC反压帧是否激增。如果存在激增，则为网络拥塞。
     
     - 重新拉起训练，如果连续多次训练由于网络拥塞失败，需联系华为工程师解决，如查看组网策略配置是否合理。
      
    
4. 如果"根因节点分析"中打印的诊断结果包含"Socket建链"、"Notify Wait超时"、"FFTS + run failed"、"P2P超时"，可以按照以下场景处理：
   - 如果"故障事件分析"中没有任何明确故障信息，且根因节点信息描述包含"最早报错节点与最晚报错节点间报错间隔超过设置的超时时间"，可能原因为NPU间不同步，超时时间设置太短，可尝试调大超时时间，重新拉起训练。
     - 如果为"Notify Wait超时"、"FFTS+ run failed"：可通过在训练容器设置**export HCCL_EXEC_TIMEOUT**=xx。
     
     - 如果为"socket超时"、"p2p超时"：可通过在训练容器设置**export HCCL_CONNECT_TIMEOUT**=xx，如果训练任务调用的NPU数量超过3000时，xx配置为240；NPU数量超过5000时配置为600。
      
   
   - 如果"故障事件分析"中没有任何明确故障信息，且根因节点信息描述包含"所有节点Plog报错xx超时，最早报错节点与最晚报错节点间报错间隔未超过设置的超时时间"，此时可联系华为工程师定位处理。
   
   - 如果"故障事件分析"中没有任何明确故障信息，且根因节点信息描述包含"部分节点Plog报错xx超时"，查看推荐的根因节点的plog日志中是否有ERROR报错。若无任何ERROR，可能为慢节点、业务进程卡住，参考[慢节点/慢网络处理](https://support.huaweicloud.com/resmgmt-modelarts/resmgmt-a5_0010.html)。
    
5. 如果"根因节点分析"中打印的诊断结果包含"所有节点都没有错误日志信息"，需要执行**npu-smi info**命令，查看NPU状态，并排查带外BMC、NPU告警，做相应处理。
