8. 企业生产实践
AI 集群的网络生产实践,核心是在带宽、延迟、成本和稳定性之间找到可运营的平衡点。本章从 RoCE/InfiniBand 部署、Kubernetes 网络、NCCL 调优、推理服务入口网络、排障手册五个维度展开。
8.1 RDMA 网络:InfiniBand vs RoCE
8.1.1 选型建议
| 维度 | InfiniBand | RoCEv2 |
|---|---|---|
| 带宽/延迟 | 极高,专为 HPC 设计 | 高,依赖无损以太网 |
| 成本 | 高(专用交换机和网卡) | 低(复用数据中心以太网) |
| 运维复杂度 | 封闭生态,工具链成熟 | 需要 PFC/ECN 精细调参 |
| 扩展性 | 单集群可达数万卡 | 通常数千卡,需分 fabric |
| 生态趋势 | 份额被以太网侵蚀 | 2025 年起新增部署反超 IB,UEC 持续增强 |
2025—2026 年的选型背景:以太网/RoCE 已经成为新建 AI 集群的主流(Dell'Oro、Broadcom 口径),InfiniBand 仍保留在最追求低抖动、紧耦合 HPC 与现成工具链的场景。Meta 用 24,576 GPU 的 RoCE 集群实际训练了 Llama 3.1 405B,证明调优到位的 RoCE 性能可以对标 IB(出处:SIGCOMM 2024《RDMA over Ethernet for Distributed Training at Meta Scale》);UltraEthernet(UEC)则正在把这类实践标准化为开放规范(截至 2026-10 已发布 1.1 版)。
8.1.2 RoCE 的无损以太网三板斧
RoCE 要求网络在丢包前通过流控降低速率,否则 RDMA 性能暴跌。
- PFC(Priority Flow Control):在 L2 上按优先级 pause 上游端口,防止缓冲区溢出。
- ECN(Explicit Congestion Notification):IP 头标记 congestion experienced,端侧 CNP(Congestion Notification Packet)通知发送方降速。
- DCQCN / Swift:端侧拥塞控制算法,根据 ECN/CNP 调整发送速率。
8.1.3 调参 checklist
- 全网 MTU 一致,推荐使用 Jumbo frame(9000 或 9216)。
- 交换机缓冲区足够大,关注 dynamic buffer 配置。
- ECN 阈值:通常 Kmin/Kmax 根据 RTT 和队列深度设置。
- PFC 优先级与 NIC VLAN/CoS 对齐。
- 开启
collective buffer/ adaptive routing(IB/SHARP 或交换机支持)。 - BIOS 关闭 C-states,CPU 频率锁定,NUMA 对齐(网卡和 GPU 在同一 NUMA)。
8.1.4 大规模 RoCE 的实战教训(Meta 案例)
Meta 的 24,576 GPU RoCE 集群(SIGCOMM 2024)把“RoCE 上大规模训练”的坑趟了一遍,值得直接抄作业:
| 踩过的坑 | 解法 |
|---|---|
| 现成 DCQCN 在 400G 下收敛不可预测 | 自研与集合通信库联动的拥塞控制 |
| ECMP HASH 极化导致链路利用不均 | 拓扑感知的 rank 分配,让通信模式匹配网络拓扑 |
| NIC PCIe credit 配置不当拖慢单流 | 深度调优 NIC 寄存器与 relaxed ordering |
| all-reduce 同步 burst 打爆缓冲区 | PFC 无损 + 大缓冲区 + 集合通信节奏协同 |
有损 vs 无损的争论新结论:传统观点认为 RDMA 必须跑无损网络(PFC),但 PFC 配置复杂、可能死锁、还会造成 Head-of-Line 阻塞。2024—2026 年的趋势是:短期生产仍以 PFC + ECN 无损方案为主(这是当前最稳的路线),中长期看 UEC 的增强传输(包喷洒、乱序交付、增强重传)会让“有损以太网跑 RDMA”成为可互操作的标准能力——Google 的 Falcon 等自研协议早已证明有损网络 + 上层恢复的可行性。
8.2 Kubernetes 网络实战
8.2.1 CNI 选型
| CNI | 特点 | 适用场景 |
|---|---|---|
| bridge + host-local | 简单,性能一般 | 测试、轻量 GPU 集群 |
| Calico | BGP/IP-in-IP,网络策略强 | 传统 K8s,L3 网络 |
| Cilium | eBPF 数据面,可观测性强 | 大规模、需要 Hubble、L7 策略 |
| Multus | 多网卡 | AI 训练:管理网 + RDMA 数据网 |
| SR-IOV / DPDK | 高性能 | 需要硬件支持,配置复杂 |
AI 训练 Pod 常见模型:
eth0 —— 管理网(CNI,Kubernetes Service)
eth1 —— 数据网(SR-IOV / Macvlan / host-device,直接用于 RDMA)8.2.2 kube-proxy 模式
iptables:默认,连接数大时规则遍历开销高。ipvs:性能更好,适合大规模 Service。eBPF(Cilium kube-proxy replacement):无 conntrack,延迟最低,但依赖内核版本。
8.2.3 DNS 规模化
CoreDNS 在 AI 集群里容易成为瓶颈:
- 训练 Job 启动时大量 Pod 同时解析 Service;
- 推理服务 Pod 滚动更新导致 DNS 记录变化;
- NodeLocal DNSCache 可以显著降低 CoreDNS 负载。
8.3 NCCL 调优
NCCL 是 NVIDIA 集合通信库,参数调优直接影响多机训练吞吐。
8.3.1 关键环境变量
| 变量 | 含义 | 常用值 |
|---|---|---|
NCCL_DEBUG | 日志级别 | INFO、WARN |
NCCL_IB_DISABLE | 禁用 InfiniBand | 0 或 1 |
NCCL_SOCKET_IFNAME | 指定 TCP 通信网卡 | eth1 |
NCCL_NET_GDR_LEVEL | GPU Direct RDMA 级别 | SYS、PIX |
NCCL_TREE_THRESHOLD | tree/ring 算法切换阈值 | 默认 1M |
NCCL_ALGO | 强制算法 | RING、TREE |
NCCL_BUFFSIZE | 通信缓冲区大小 | 按网络调整 |
8.3.2 常见性能问题
- NCCL timeout:网络抖动、PFC 配置错误、交换机 buffer 不足。
- 带宽不达标:检查 PCIe、NUMA、GDR、链路速率、是否 fallback 到 TCP。
- incast:all-to-all 流量同时到达交换机,开启 ECN + 增大 buffer。
- 多租户互相干扰:用 NetworkPolicy 或物理网络隔离训练/推理流量。
8.4 LLM 推理服务网络
8.4.1 入口链路
用户请求
→ DNS(GSLB/Anycast)
→ L4/L7 负载均衡(Envoy/NGINX/AWS ALB)
→ Gateway API / Ingress
→ Kubernetes Service
→ Pod 容器网卡
→ vLLM / TensorRT-LLM / Triton 进程8.4.2 优化点
- 连接池与 keep-alive:减少 TCP 握手和 TLS 开销。
- Batch 编排:在网关层做请求合并,提高 GPU 利用率。
- 长连接负载均衡:避免某 Pod 因长连接积累而过载。
- 超时与重试:设置合理的 read timeout 和 retry budget。
- Warm replica:预热副本,避免冷启动时 DNS/TCP 建立延迟。
8.5 排障手册
| 现象 | 可能原因 | 排查命令 |
|---|---|---|
| NCCL timeout / hang | 网络抖动、PFC、路由不对称 | nccl-tests、ib_write_bw、dmesg |
| RDMA 带宽低 | NUMA 不对齐、GDR 未启用、fallback TCP | nvidia-smi topo -m、ib_write_bw |
| 推理 P99 延迟高 | DNS 慢、LB 不均衡、长连接倾斜 | dig、ss -tin、curl -w |
| Pod 间偶发不通 | CNI 插件 bug、IP 冲突、安全组 | ping、tcpdump、cilium connectivity test |
| 交换机丢包 | buffer 不足、incast | 交换机 CLI、SNMP、sFlow |
| RDMA 重传高但无丢包表象 | 物理层误码、PFC 风暴、链路 flap | ethtool -S 看 NIC hw_counters、交换机 WJH/遥测 |
8.5.1 一条常用的端到端验证命令
# 测试两台机器之间的 RDMA 带宽
ib_write_bw -d mlx5_0 --report_gbits -F
# 对端
ib_write_bw -d mlx5_0 --report_gbits -F <server_ip>8.5.2 训练前的网络体检清单
- [ ] 所有节点网卡速率一致且 Up。
- [ ]
ibdev2netdev/ibstatus显示状态正常。 - [ ] 同交换机下
ib_write_bw达到线速 90% 以上。 - [ ] 跨 Spine
ib_write_bw带宽符合预期。 - [ ]
nccl-testsall_reduce_bus_bandwidth 达到理论值 80% 以上。 - [ ] 网卡
hw_counters(重传、out-of-order)基线清零并记录。 - [ ] DNS 解析 Service 延迟 < 5ms。
- [ ] Pod 跨节点 ping RTT 稳定。
8.6 本章小结
生产环境的网络优化不能靠单点参数,而要靠端到端观测 + 分层验证:从网卡、交换机、内核、CNI、NCCL 到应用,每一层都有明确的验收指标。下一章把这些经验整理成可落地的最佳实践检查清单。