IB网络检查
最近发现 H100 集群 IB 网络通信有问题。跑 DeepEP,MoonCake 都会有通信报错。nccl init 也很慢。
正常跑 ibsend 啥的都没问题。
命令:
1 | lspci -d 15b3::0207 -n | awk '{print $1}' | xargs -I{} sh -c 'echo {} && mlxlink -d {} -c | grep -e Effective -e Raw' |tee /tmp/mlxlink_$(date +%Y-%m-%d_%H-%M-%S).log |
lspci -d 15b3::0207 -n
查找 IB 网卡。15b3::0207
是产品 ID
mlxlink -d device -c 列出 Error 以及 BER(Bit Error Rate 误码率)
此命令输出到终端,并且写入文件/tmp/mlxlink_xxx.log
mlxlink 输出结果样例
1 | Operational Info |
关注 Raw Physical BER,但两者都要看
优先级和用途
🎯 Raw Physical BER - 主要关注对象
- 作用:反映真实的物理层健康状况
- 含义:未经任何纠错处理的原始误码率
- 用途:硬件故障诊断的第一指标
📊 Effective Physical BER - 辅助参考
- 作用:反映实际数据传输质量
- 含义:经过 FEC 纠错后的最终误码率
- 用途:评估当前链路可用性
判断逻辑流程
graph TD A[检查 Raw Physical BER] --> B{Raw BER > 1E-12?} B -->|是| C[🔴 物理层有问题] B -->|否| D[检查 Effective BER] C --> E[更换线缆/光模块] D --> F{Effective BER > 1E-12?} F -->|是| G[🟡 FEC 纠错压力大] F -->|否| H[✅ 链路健康] G --> I[监控 FEC 负载,准备维护]
实际案例分析
以你之前的数据为例:
1 | Raw Physical BER : 2E-8 ← 🚨 严重超标(正常<1E-12) |
解读:
- Raw BER = 2E-8:物理层存在严重问题,需要立即更换硬件
- Effective BER = 2E-17:FEC 正在拼命纠错,暂时保证数据正确性
- 风险:一旦错误突发超过 FEC 能力,会出现数据损坏
告警阈值设置
BER 类型 | 正常 | 警告 | 严重 | 紧急 |
---|---|---|---|---|
Raw BER | <1E-15 | 1E-12 | 1E-9 | >1E-8 |
Effective BER | <1E-15 | 1E-12 | 1E-9 | >1E-6 |
总结:Raw BER 是硬件健康的晴雨表,Effective BER 是当前服务质量的体现。故障排查时 Raw BER 是决策依据
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JMY Space!