# 辅助定位工具
---
`nvidia-smi`: 它是一个随 NVIDIA 驱动一起安装的命令行程序。它会报告系统中每个 GPU 的基本监控数据和硬件参数、配置数据。 nvidia-smi 可以列出 ECC 错误计数 (Xid 48) 并指示电源线是否已拔出 (Xid 54) 等。同时运行“nvidia-smi –q”以获得全面输出。
`DCGM`: nvidia data center gpu manager是一套用于在集群环境中管理和监控 NVIDIA 数据中心 GPU 的工具。它包括主动健康监控、全面诊断、系统警报和治理策略(包括电源和时钟管理)。 DCGM 诊断是一款运行状况检查工具,可以检查基本的 GPU 运行状况,包括是否存在 ECC 错误、PCIe 问题、带宽问题以及运行 CUDA 程序的常见问题。
`nvidia-bug-report.sh`: 它是与 NVIDIA 驱动一起安装的脚本。它从系统收集调试日志和命令输出,包括内核日志和NVIDIA驱动程序本身收集的日志。该命令应以 root 身份运行。nvidia-bug-report.sh 通常会快速运行,但在极少数情况下可能会运行缓慢。最多需要一小时才能完成。如果命令仍然挂起,请使用附加参数运行命令,如下所示:nvidia-bug-report.sh --safe-mode --extra-system-data
# XID errors
---
- 什么是 Xid errors:
XID消息是NVIDIA驱动程序向操作系统的内核日志或事件日志打印的错误报告。XID消息用于标识GPU错误事件,提供GPU硬件、NVIDIA软件或您应用程序中的错误类型、错误位置、错误代码等信息。
## 根据XID状态排查问题
---
内核日志搜索: `dmesg -T |grep -i xid`
![image.png](https://blog.zs-fighting.cn/upload/2024/05/image-1904dfda1d9f4172a4c50fc1f86012b5.png)
![image.png](https://blog.zs-fighting.cn/upload/2024/05/image-d4199feac23a42e5b7adb03f6aed68ee.png)
# Dcgm exporter
---
repo: https://github.com/NVIDIA/dcgm-exporter
官方文档: https://docs.nvidia.com/datacenter/cloud-native/gpu-telemetry/latest/dcgm-exporter.html
监控指标说明: https://docs.nvidia.com/datacenter/dcgm/latest/dcgm-api/dcgm-api-field-ids.html
aliyun 监控指标说明: https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/introduction-to-metrics
# ECC errors
---
官方文档: https://docs.nvidia.com/deploy/a100-gpu-mem-error-mgmt/index.html
# NCCL, PCIe, NVLink, RDMA
---
`nvidia-smi topo -m`
![image.png](https://blog.zs-fighting.cn/upload/2024/05/image-061c4e4afc0a449699ba460be1114f97.png)
![img_v3_02ap_933858bab0b9495cb4a566609b9a2a0g.jpg](https://blog.zs-fighting.cn/upload/2024/05/img_v3_02ap_933858ba-b0b9-495c-b4a5-66609b9a2a0g-b4434da79cca49068ddef7eb75ca137f.jpg)
## **NCCL**
---
## **PCIe**
---
## **NVLink**
---
## **RDMA**
---
**Remote Direct Memory Access**
![image.png](https://blog.zs-fighting.cn/upload/2024/05/image-5367e885e2794344a0ee6d20fc23de0b.png)
https://zhuanlan.zhihu.com/p/55142557
### Infiniband
---
# 常见的检测命令
---
- **检测XID errors**
`dmesg -T |grep -i xid`
- **dcgmi check errors**
`dcgmi diag -r 3`
![image.png](https://blog.zs-fighting.cn/upload/2024/05/image-bc46ab0178f442ac9f5164755262e035.png)
- **检测GPU掉卡数量 & 检测GPU数量**
每个GPU末尾标识为(rev a1). 输出信息末尾为(rev ff), 表示GPU异常.
掉卡数量
`lspci -d 10de:|grep "rev ff"`
正常数量
`lspci -d 10de:|grep -v 1af1`
- **GPU温度检测**
`nvidia-smi --query-gpu=temperature.gpu --format=csv`
- **GPU功耗检测**
`nvidia-smi`
存在某张卡的功率一栏是Unknown或者err
![image.png](https://blog.zs-fighting.cn/upload/2024/05/image-040601d020a4470a8a8d2466cb5bcc8e.png)
- **查询所有RDMA网卡的接口状态**
`ibdev2netdev |grep -v eth0`
- **RDMA网卡抖动检测**
`dmesg -T | grep -i eth|grep -i link|grep -i down|wc -l`
- **mtu检测**
查询所有RDMA网卡的接口名称
`show_gids |grep v2|awk '{print $7}'|sed '/^$/d'|grep -v eth0`
依次查询每个RDMA网卡的mtu
`ip -4 -j -p addr show dev ${ifname}|grep mtu`
GPU常见故障及排查方法