万卡 GPU 集群建设和运维指南:把网络工程做到极致的战场
大模型时代有一句行话:算力集群,网络定生死。一张 GPU 的价格是明码标价的,但一个万卡集群的真实产出——衡量它的核心指标叫 MFU(模型算力利用率)——却和网络质量深度绑定。网络抖一下,几千张卡一起停下来等;网络差 5%,一个训练任务多烧的电和租金就是七位数。这篇文章按“建设 → 调优 → 运维”的顺序,把万卡 GPU 集群的关键决策、参数起点和踩坑清单系统写一遍。文中数值为常见工程参考值,落地务必以实际硬件、模型流量画像和压测结果为准。
一、先建立经济直觉:为什么网络值这个钱
训练一个大模型的成本结构里,GPU 租金或折旧占绝对大头。假设一个万卡任务训练周期三个月,集群有效并行度(线性度)从 95% 掉到 90%,等于你多付了半个多月的全体卡租金钱。而线性度损耗的来源,除了并行策略设计,最大的变量就是集合通信(AllReduce/AllToAll)的效率——它完全跑在网络上。
所以万卡集群的网络工程,本质上是在回答一个问题:怎样让一万张卡像一张卡。答案拆开是四件事:带宽要满(无收敛)、路径要稳(无损与确定性延迟)、故障要快(秒级发现分钟级隔离)、变更要怂(一切灰度)。后面所有章节都是这四件事的展开。
二、全景图:一个万卡集群由什么组成
从下往上过一遍,后面逐层展开:
- 计算节点:数千台 8 卡 GPU 服务器(单机内 NVLink/NVSwitch 组成高带宽互联域,卡间带宽以 TB/s 计),配 8 张或更多高速网卡(400G/800G 口径);
- 网络:Spine-Leaf/轨道优化 CLOS Fabric,无收敛设计;RoCEv2 或 InfiniBand 二选一;
- 存储:并行文件系统 + 独立存储网络,扛训练启动时数万进程并发读 checkpoint;
- 带外网络:BMC/IPMI 独立成网——生产事故一半的“救命命令”是从带外敲进去的;
- 调度层:Kubernetes + Volcano 或 Slurm,关键是拓扑感知调度;
- 可观测性:GPU 遥测(DCGM)、网络秒级遥测(gRPC/streaming telemetry)、训练任务打点(MFU、迭代耗时);
- 运营层:变更管理、备件与光模块台账、电力与散热容量台账。
再把视角拉高一点:一个万卡集群是有完整生命周期的有机体——选型与设计(36 个月)、建设与联调(23 个月)、试运行压测(1~2 个月)、稳定运行与持续运营(数年)、扩容与迭代(伴随始终)。这篇文章覆盖全周期,但着墨最多的是“建设收尾到稳定运营”这一段——因为集群的口碑不是在交付验收那天定下的,是在之后第一个季度的故障里定下的。
三、组网架构:从一张卡到一万张卡
单机之内:NVL 域
8 张卡通过 NVSwitch 全互联,卡间带宽以 TB/s 计,这是尺度最小、带宽最高的互联域。张量并行(TP)优先放在这个域里,因为它对带宽最饥渴、对延迟最敏感。
单机之外:轨道优化(Rail-optimized)
服务器 8 张网卡,分别接入不同的 Leaf(轨),第 i 张卡固定接第 i 轨——这就是轨道优化。它的妙处在于:同轨的 GPU 之间通信恰好一跳可达,而集合通信算法(如 Ring AllReduce)恰好可以按轨组织通信步进。没有轨道优化的 Fabric 不是不能跑,而是集合通信会在 Spine 层产生不必要的绕行与拥塞,MFU 直接打折。
万卡规模:两级 CLOS 与多 Pod
以 400G 口径估算,128 台 8 卡服务器(1024 卡)配 64 口交换机,两轨 CLOS(Leaf-Spine)大约能撑到数千卡;上万卡通常要三层组网或多个 Pod 互联。这里有个残酷的工程事实:跨 Pod 的通信代价(跳数、时延、共享带宽竞争)显著高于 Pod 内。所以铁律是——调度必须拓扑感知,把一个训练任务钉在一个 Pod 内,跨 Pod 摊大饼等于花钱买慢。这也反过来要求:Pod 的规模、任务的大小分布、调度器的亲和策略要放在一起设计。
一道算术题:一个 1024 卡 Pod 的账
拿数字算一遍最直观。目标:1024 卡(128 台 8 卡机)的无收敛轨道优化 Pod,用 64 口 400G 交换机。每台服务器 8 张计算网卡 + 2 张存储/带外网卡(这部分口径按实际设计走,先只算计算网)。128 台 × 8 口 = 1024 个下联口,按轨道优化需要 8 台 Leaf(每台轨 16 台服务器下联 = 16 口,上联剩余口数充足)。Leaf 到 Spine 的上行:无收敛要求 Spine 侧提供的下行带宽等于 Leaf 全部下联带宽——8 台 Leaf 各拿出 48 口上联,需要 384 个 Spine 下行口,即 6 台 64 口 Spine。总账:14 台交换机、1024 条(对)高速链路、约两千个 400G 光模块。把这道算术题内化之后,和采购、机房、预算的对话都会变得非常具体——规模不是抽象的大数,是光模块的个数和机柜的U位。
收敛比:钱要花在刀刃上
训练流量是东西向、大带宽、长持久、突发同步的——几千张卡同一瞬间一起开口说话。所以训练网必须 1:1 无收敛:下联带宽 = 上联带宽,没有任何超卖。存储网可以适度收敛(checkpoint 写入是间歇性洪峰),带外网收敛比可以更激进。用收敛比的语言和老板谈预算,比用“高质量”三个字有效得多。
四、选型之争:InfiniBand 还是 RoCEv2
这是每个万卡集群绕不开的选择题。两者都能跑万卡,差异在运维基因:
| 维度 | InfiniBand | RoCEv2(以太网) |
|---|---|---|
| 无损属性 | 链路层原生credit,开箱即用 | 靠 PFC+ECN 自己调,精细活 |
| 延迟 | 更低(省去以太网处理) | 略高,新代交换芯片已逼近 |
| 生态 | 封闭(原厂绑定),人才和备件贵 | 开放,和现有以太运维体系融合 |
| 多租户/云化 | 相对弱 | 天然融合 EVPN/VXLAN 体系 |
| 排障工具链 | 原厂工具成熟 | 生态工具多但要自己攒 |
| 规模案例 | 万卡到数万卡案例多 | 头部云厂万卡案例成熟 |
我的选型观:看团队的运维基因。有多年 IB 运维经验或原厂深度支持的团队,IB 上手快;有强大以太网团队和自研遥测能力的团队,RoCE 的开放性和成本优势会随时间放大。最贵的不是设备差价,是“没玩过的技术”在故障夜晚交的学费。
补充两个现实话题。混合组网:不少集群选择计算网用 IB、存储与管理用以太网——能用,但两套体系两班人马,跨界故障(比如 checkpoint 流量与计算网互联的网关)最容易扯皮,边界要有明确的 owner。队列规划:RoCE 队列要和存储、管理流量严格分队列并做优先级映射规划(DSCP 到 UP 的映射全路径一致),哪天有人把普通业务流量灌进了无损队列,PFC 风暴会替他记住这个教训。
选型时还有一个容易忽略的视角:别只比纸面带宽。同样是“400G”,不同代际交换芯片的有效吞吐、缓冲大小、拥塞算法硬件卸载能力差异巨大;同样标 400G 的光模块,AOC/DAC/单模多模的传输距离、功耗、故障率画像完全不同。正确姿势是拿你的真实流量模型,在候选组合上各跑一轮基准测试——参数表是给别人看的,实测数据才是给自己的。
五、无损网络精调:RoCE 的真功夫都在这
RoCEv2 跑在标准以太网上,靠 PFC(优先级流控)+ ECN(显式拥塞通知)模拟无损。这部分是整个集群技术含量最高的地方,逐项说:
PFC:水线与死锁
PFC 对 RoCE 队列单独开启流控,防止缓冲溢出丢包。两个水线的经验起点:触发门限约为缓冲的 1/8,关闭门限约为 1/16——必须留出足够裕量覆盖“流控生效期间链路还在跑的流量”(即 Headroom,按线速×往返时延估算)。最常见的错误是水线拍脑袋设太高,PFC 变成了常态而不是兜底。
PFC 死锁是 RoCE 的阿喀琉斯之踵:循环依赖的流控等待会形成死锁,流量永久停滞。三道防线:交换机开启 PFC 死锁检测与自动恢复(watchdog);组网杜绝非对称链路和临时打环;把死锁触发/恢复事件纳入秒级告警。一次未处理的 PFC 死锁,症状是“集群里随机几台卡集体降速”,排查起来极其狡猾。
ECN:让发送方提前刹车
ECN 在队列超过标记门限时给报文打标记,接收方回送 CNP 让发送端降速,从源头避免缓冲打满。经验起点:最低门限数十 KB 量级起步、最高门限数 MB、标记概率 5%~10%。但ECN 参数没有万能值——不同模型的流量突发画像差异巨大,正确姿势是拿真实训练流量反复压测迭代,看三个指标:PFC 触发次数趋零、ECN 标记率在合理区间、AllReduce 带宽达标。
ECN 调优我总结成三步循环:第一步看谁在疼——收集任务侧的集合通信带宽分布和交换机侧的队列深度曲线,定位最疼的拓扑位置;第二步动一个旋钮——门限或标记概率,一次只动一个,跑一轮标准训练流量对比;第三步固化并守护——把最优参数写成基线纳管,任何变更后的巡检都要比对。三个指标里我最看重 PFC 触发次数:PFC 应该是安全气囊,不是刹车片——它被频繁触发,说明 ECN 没把拥塞治在源头。
压测与验收:别拿 ping 当验收
网络“通”和“能跑训练”是两回事。交付验收至少包含:单链路带宽时延测试(ib_write_bw/qperf 级工具)、全网规模打流(模拟同步突发)、真实训练任务试跑 72 小时并盯 MFU 与集合通信耗时曲线。我见过 ping 全通但集合通信带宽只有标称 60% 的 Fabric——原因藏在某几台的 ECN 错配里。
常见错配清单
MTU 全路径不一致(尤其忘记隧道/加密开销的余量);PFC 开在错误队列或优先级映射(DSCP→UP)不一致;交换机缓冲模式没切到存储型;某些端口固件版本不一致导致拥塞行为差异。这四项建议做成自动化基线巡检项,每次变更后全量比对。
六、计算节点与带外:救命的路要修在平时
8 卡整机是集群的基本单元,几个工程要点:网卡与 GPU 的亲和(PCIe 拓扑对齐,NUMA 绑定)直接影响单机通信效率,部署时逐机校验;固件(BIOS/NIC/NVSwitch)版本固化成基线,杜绝“顺手升级”;BMC 带外网必须独立成网、独立供电路径——当训练网或管理网出问题时,带外是你最后一根能拉的手绳。带外网平时没人用,出事时人人都靠它,所以它的巡检等级应该按生产网标准来。
七、机房基建:散热供电是隐形的First Layer
网络工程师容易只盯着 Fabric,但万卡集群里基建是第一层网络——链路的物理载体全在机房里。单 GPU 服务器整机柜功率从早年 15kW 一路涨到 40kW 以上,风冷天花板已到,液冷(冷板式为主、浸没式在探索)正在成为万卡集群标配;供电从“每柜两条 PDU”演进到集中式母排(busway),扩容灵活但接线纪律要求更高。
对网络工程师的具体影响:光模块和交换芯片的工况温度变了——液冷机房里风冷交换机的位置要重新规划,别让它成为机柜里唯一的风冷孤岛;线缆管理在液冷管线的夹缝中施工,弯曲半径和标签纪律的执行难度都翻倍;水会让故障处理多一个维度——漏液检测、断水联动降载这些预案要和基建团队共同演练。基建和网络的关系,从“你提供机房我部署”变成了联合设计,这是万卡时代网工角色的重要变化。
八、存储与 checkpoint 经济学
训练的存储流量画像很有意思:平时安静如鸡,保存 checkpoint 时山呼海啸。万卡任务每隔几十分钟到几小时写一次 TB 级 checkpoint,而且是“写完再删旧的”的滚动模式。这决定了存储设计三原则:并行文件系统(GPFS/Lustre/JuiceFS 类)撑高聚合带宽;存储网与计算网物理隔离(或严格的队列隔离),防止 checkpoint 洪峰冲击集合通信;checkpoint 写入耗时直接等于故障恢复耗时——一次断电恢复,读上一个 checkpoint 加热身可能要几十分钟,这段时间几千张卡在空转烧钱。所以“存得快”不是存储团队的 KPI,是全集群的 KPI。
九、调度与 NCCL:让拓扑感知贯穿全栈
调度层的铁律前面说了:拓扑感知、任务钉 Pod。补充两个实践:碎片整理——大任务需要的整块拓扑资源被小任务切碎是常见死锁,调度器要支持 gang scheduling 和资源预留;优先级与抢占要和业务方谈清楚,谁的训练可以被打断重跑,写进SLA。
NCCL(GPU 集合通信库)是网络上层的最后一公里,运维要点:部署后固化 NCCL 拓扑探测结果并纳入巡检(探测结果变了往往意味着硬件变了);关键环境变量按集群基线统一(如 NCCL_ALGO、NCCL_PROTO 的选择要结合实测,NCCL_DEBUG=INFO 输出作为验收项);准备一张常见症状对照表:NCCL timeout 查链路抖动与 PFC 死锁、带宽上不去查 ECN 错配与轨道一致性、偶发 hang 查固件版本漂移。这张表能让你在凌晨四点的故障里少走两小时弯路。
再讲两个调度与网络联动的实践。慢节点处置要形成标准流程:任务打点发现慢节点 → 自动隔离(cordon)→ 调度重新拉起该节点上的任务分片 → 硬件科复检。没有流程的话,慢节点会以“这个任务就是慢”的名义长期潜伏,全集群陪着赔 MFU。checkpoint 策略和网络容量要联动:业务方约定 checkpoint 频率与错峰策略(比如按任务 ID 分桶错开到不同时间点),比存储和网络各自硬扛洪峰便宜得多——这是花一小时开会省下来的几百万硬件。
十、可观测性:万卡集群的眼睛
规模决定了“人盯”必然失败,可观测性要按四层建设:
| 层 | 关键指标 | 采集方式 | 频率 |
|---|---|---|---|
| GPU | 利用率、显存、温度、ECC、NVLink 重传、XID 事件 | DCGM Exporter | 秒级 |
| 网络 | 光功率/误码、CRC、PFC/ECN 计数、flapping、队列深度 | 交换机 streaming telemetry | 秒级 |
| 存储 | 聚合带宽、checkpoint 耗时 | 存储侧 exporter | 分钟级 |
| 任务 | 迭代耗时、MFU、集合通信耗时、慢节点排名 | 训练框架打点 | 迭代级 |
两个点睛之笔:MFU 看板是全集群最诚实的仪表——GPU 利用率常年 99% 是假象,MFU 集体下滑 5% 往往意味着网络里已经出事;慢节点排名——万卡里总有几台“拖后腿的卡”(硬件微缺陷、拓扑退化),任务级打点能直接把它们揪出来隔离。告警设计要刻意降噪:秒级遥测 + 持续时间窗口 + 关联聚合,否则值班同学一周就会被误报驯化成狼来了。
遥测管道要先算一笔数据账:一台交换机几十个端口 × 每端口十几项计数器 × 秒级采集 = 每天数百 MB 原始数据,几百台交换机的集群就是 TB/天量级。务实做法是分层存储:原始遥测热存 714 天(够故障回放),聚合成趋势数据后长存 12 年(供容量与光模块寿命分析)。遥测体系的价值高峰不在实时大屏,而在故障复盘时的“时间机器”能力——能回到事故前的每一秒,比任何事后猜测都值钱。
十一、故障案例集:六个脱敏的真实场景
案例一:会呼吸的带宽。 任务 MFU 缓慢下滑,数小时跌 8% 后又自行恢复,周而复始。网络面板一切正常。最后对齐时间轴发现:MFU 下滑时段与相邻机房空调轮巡切换完全吻合——高温导致部分光模块光功率劣化、FEC 纠错开销上升。教训:基础设施事件和时间轴对齐是排查的第一动作,网络问题不一定长在网络里。
案例二:凌晨的 PFC 死锁。 某夜两台服务器上的任务同时 hang,其余正常。登录看 PFC pause 帧计数:某两个端口互相停等、计数冻结——教科书式死锁。触发源是前一天临时跳的一根跨机柜线缆形成了非对称路径。死锁 watchdog 自动恢复后,把“临时布线必须走变更”写成了红线。教训:RoCE 集群里,每一根“临时”线缆都是定时炸弹。
案例三:大 MTU 的陷阱。 新增一批服务器后跨节点带宽集体上不去,ping(小包)全通。逐跳查 MTU:新机器接入的那对 Leaf 互联口漏配 jumbo。教训:MTU 基线要做成自动化巡检,“人配的迟早会漏”。
案例四:灰度不够的代价。 一次全网交换机固件升级,实验室验证通过后按“每周一批”推进,推到一半出现新版与新一批服务器 NIC 的兼容问题,集合通信性能回退。幸好灰度策略保住了另一半集群,任务回切到旧版本区域跑完。教训:灰度不是流程形式主义,是唯一能让你“退回去”的物理基础。
案例五:接错轨道的装机事故。 新一批服务器上架后,凡是用到这批机器的任务 MFU 都明显偏低,而单链路带宽测试全部正常。对 NCCL 拓扑日志才看出端倪:跨轨通信占比异常——装机师傅按端口相邻顺序接线,没按轨道规划表(0-7 号网卡本应分接 8 个轨)。链路“都通”,但拓扑是错的。教训:装机验收必须包含 NCCL 探测结果与设计图纸的自动比对,人和图纸都会错,交叉验证不会。
案例六:被洪峰挤垮的带外。 多个大任务同时到点写 checkpoint,存储洪峰期间带外网偶发丢包,值班差点按“网络故障”重启交换机。根因:早期设计里存储网与带外网在某一级共享上联,洪峰把队列吃满。改造后物理隔离。教训:带外网是“最坏时刻的独木桥”,它的容量规划要按峰值叠加来算,隔离不是口号是保命。
十二、变更管理与演练:怂一点,稳一点
万卡集群的变更管理只有三条铁律:一切变更走灰度(固件/驱动/交换机 OS,先一台、再一个机柜、再一个 Pod,每步观察 72 小时满负载);变更窗口避开训练高峰并和业务方共享日历;回滚预案先于变更方案存在。演练方面,每季度至少真刀真枪做一次:单交换机断电、单 Leaf 下线、存储主备切换、带外网故障切换。演练不是表演——把演练中暴露的预案缺口修掉,才是演练的全部意义。
一份可以直接抄走的季度演练清单:
□ 单 Spine 整机断电:收敛时间实测 vs 设计值;任务侧迭代耗时曲线
□ 单 Leaf 下线 + 回插:轨道内通信降级表现;任务是否需要重调度
□ 存储主备切换:checkpoint 读写中断时长;恢复后数据一致性校验
□ 带外网主路径故障:带外可达性切换;OOB 工具链可用性验证
□ 光模块在线拔插单端口:告警链路是否按预期触发与自愈
□ BMC 全网密码轮换演练:凭据管理流程是否真的可执行
每项演练输出:时间线 + 暴露的预案缺口 + 责任人 + 整改期限(下季度演练先检查)
十三、成本与容量运营:被忽视的下半场
集群建成只是上半场,下半场是运营:光模块是消耗品——建立光功率基线趋势图,劣化提前更换,别等它半夜误码;备件安全库存按故障率数据动态调整,万卡集群的光模块和线缆周转是实打实的现金流;电力与散热台账按机柜精确到千瓦,超密度部署的代价是局部热点和降频;容量水位每月复盘——网络端口、功率、存储、调度队列四个维度,任何一个到达 80% 就触发扩容议程。
光模块管理多说两句,它是集群运营里最像“养鱼”的活:按批次记录serial与到货日期(同一批次往往同生共死);收发光功率按周画趋势,连续三周下滑超阈值就计划性更换,而不是等它产生 CRC;插拔次数有寿命上限,演练和排障的每次拔插都要记台账;退下来的模块分级复用——测试环境先用,彻底退役再报废。一个管好光模块的团队,能把“随机丢包类”故障压到一年一遇以下。
十四、安全:算力集群的攻防面
算力集群是高价值目标:GPU 时间可以直接变现,语料和模型权重是核心资产。几个必守的防面:
分层隔离是地基:训练网、存储网、带外网、管理网物理或逻辑隔离,任务间东西向访问默认拒绝、按需放行——训练集群不该是“一张大 flat 网络”。
节点即堡垒:GPU 服务器系统镜像统一化、基线化,关闭一切用不到的服务;特别提醒,GPUDirect 等技术让网卡可以绕过 CPU 直读显存,所以网络侧的暴露面要按“能摸到显存”的级别来设防,别沿用普通服务器的思维。
镜像与模型供应链:基础镜像只从可信源拉取并做漏洞扫描;外部下载的模型文件和数据集校验哈希——被投毒的序列化模型就是一段会自己执行的任意代码。
特权与审计:调度平台、存储平台、BMC 的管理员操作全量审计。内部误操作和恶意行为的边界,只能靠审计记录来划清。
数据面收口:“谁能把这 10TB 权重拷走”这个问题,要有明确的、被审批过的答案——访问控制、传输加密、导出留痕。
AI infra 的安全编制往往很小,网工天然是安全的执行面。把前面讲过的纪律带进来——管理面隔离、ACL 归属制、供应链校验、带外网加固——你的集群安全性就已经超过大多数了。
十五、展望:这场军备竞赛的下一站
看得见的趋势:单卡带宽继续翻倍(800G→1.6T),scale-up 域(NVLink/FusionCube 类)在扩大“单机”的边界,CPO(共封装光学)开始进入交换机以压制功耗,超以太网联盟(UEC)在推动以太网原生的 AI 传输语义。对网工这意味着:光学知识、高性能网络协议、跨栈(网络+计算+框架)的联合排障能力,会是未来五年最值钱的组合技。
其中我特别想强调两个判断。第一,scale-up 与 scale-out 的边界之争会持续整个五年规划期——“单机”越做越大(百卡级 NVL 域),会吃掉一部分原本属于 Fabric 的流量,但集群级的无收敛 Fabric 需求不会消失,只是边界条件变了;网工要提前看懂 UALoN/NVLink Fusion 这类跨机互联语义,它们决定了下一代的“轨道”怎么画。第二,以太网阵营的 UEC 不是嘴上说说——从拥塞控制(自研 CC 取代简单 DCQCN 思路)到传输语义(为集合通信定制的可靠传输),以太网正在为 AI 流量重新发明自己;今天你吃透的 PFC/ECN 不是白学,它们是理解下一代理 Congestion Control 的必修课。军备竞赛没有观众席,入场券就是你现在的知识栈。
十六、结语
万卡集群是把网络工程做到极致的战场:确定性的组网、毫秒级的观测、清单化的运维、怂字当头的变更管理。它把网工这个职业从“修管道的”变成了“算力经济的基础设施工程师”。这个领域足够新、足够难、足够贵,所以也足够值得——愿你的 Fabric 永远无收敛,水线永远不触发,MFU 永远在线。
(完)