通信库的环境变量怎么用
多卡通信库通过环境变量控制选网、点对点直连与调试输出。排查挂起或带宽异常时,第一步是打开信息级调试输出,看日志里每张卡实际选中了哪个网络接口、走了哪类链路。禁用类变量用于对照实验,验证某条路径是否为瓶颈,不要凭感觉长期挂在生产配置上。
排查与对照常用变量
排查与对照常用变量
# 打开信息级日志:打印初始化与拓扑信息
NCCL_DEBUG=INFO python run.py
# 指定用于通信的网卡(多网卡机器必设)
NCCL_SOCKET_IFNAME=eth0
# 逐步放开子系统日志,定位到具体阶段
NCCL_DEBUG_SUBSYS=INIT,NET
# 对照实验:临时禁用某条路径看差异
NCCL_IB_DISABLE=1 python run.py
NCCL_P2P_DISABLE=1 python run.py其他常用变量
| 拓扑导出 | 把检测到的拓扑结构写入文件,便于人工核对 |
|---|---|
| 算法指定 | 强制使用某种集合通信算法,用于对照实验 |
| 网卡设备指定 | 多网卡环境下指定使用的设备 |
| 调试级别 | 信息、警告与错误三档,排查时用信息级 |
变量用途与风险
| 变量类别 | 用途 | 风险 |
|---|---|---|
| 日志类 | 打印初始化、拓扑与所选接口 | 日志量大,压测时注意磁盘 |
| 选网类 | 指定通信使用的网络接口 | 接口写错会导致通信失败 |
| 禁用类 | 临时关闭某条路径做对照 | 长期挂生产会隐藏真实问题 |
| 拓扑类 | 导出拓扑供人工核对 | 文件路径与权限要确认 |
典型使用场景
- 多机任务挂起:先看日志确认选中的接口是否正确
- 带宽异常:核对实际使用的链路类型是否符合预期
- 对照实验:临时禁用某条路径,验证是否为瓶颈
- 新集群调优:导出拓扑并与物理连线核对
- 升级后回归:通信库或驱动升级后重新确认选网行为
禁用类变量只适合对照排查:验证完成后应立即恢复配置,并在文档里记录结论,避免下次又重复试一遍。
多机卡死先怀疑选网:信息级日志开头会列出每张卡选中的接口,错选到管理网或容器网桥是很常见的原因。