当 400 G 光模块已批量跌破 1 美元/Gb,10/25G 似乎成了“过时货”。但全球服务器出货数据显示,2024 年新交付的 x86 节点中,仍有 82% 的板载网卡停留在 10 G 或 25 G。原因无非三点:成本敏感、功耗敏感、业务敏感——高频交易、AI 推理、工业视觉等场景对延迟“过敏”,却并不需要超高带宽。把 10/25G 叶交换机用到极致,单跳延迟压到 800 ns、单纤容量平滑演进到 48 T,远比盲目上马 100 G 更划算。本文给出一条可复制的 Spine-Leaf 路线,已在金融、AI 云、运营商边缘云落地。
架构总览:两层拓扑是“低延迟”的第一性原理
传统三层(接入-汇聚-核心)最大原罪是“路径不可预测”——同一条 TCP 流,今天 3 跳、明天 7 跳,延迟抖动被放大 5 倍。Spine-Leaf 把拓扑压成两层:
Leaf:直接托服务器,48×10/25G 下行 + 6×100G 上行;
Spine:纯转发,32×100G 或 16×400G,全互联 Leaf。
任意两台服务器通信永远“Leaf-Spine-Leaf”三跳,转发时延可预测;ECMP 把流量均匀撒到 6 条等价路径,带宽利用率从 30% 提升到 70%。
硬件选型:把延迟压到 1 µs 以内的三板斧
芯片
博通 Trident 3-X3 / Intel Tofino 2,单芯片 6.4 Tbps,片上 32 MB 共享缓存;
Cut-through 模式:报文收到前 200 byte 即可开始转发,单跳延迟 800 ns;
每端口 9 KB 超帧 + 动态缓冲分配,微突发吸收能力比 Store-and-Forward 提升 3 倍。
端口配置
下行:48×SFP28,自动协商 1/10/25 G,保护旧服务器投资;
上行:6×QSFP28,可拆 4×25 G 或 1×100 G,按需平滑扩容;
预留 2×SFP+ 带外管理口,与生产流量 100% 物理隔离。
缓冲微架构
输入侧 8 队列 + 输出侧 8 队列,每队列 128 级动态阈值;
配合 PFC(Priority Flow Control)+ ECN(Explicit Congestion Notification),在 80% 缓冲区门限即打标记,避免“尾丢”引起 TCP 全局同步;
实测:256 条 25 G 线速 TCP 流,0 丢包、平均队列深度 < 1 MB。
网络侧优化:让 ECMP 真的“均衡”
字段升级
传统 ECMP 只看五元组,遇到“大象流”依旧把 40 G 流量压在同一条 100 G 链路。新方案把“源端口 + 目的端口”再哈希一次,支持 16-way ECMP,大象流被拆成 64 KB 小片,链路利用率方差 < 5%。
路由收敛
Underlay 用 eBGP 建邻居,Leaf 与 Spine 走直连网段,任何链路故障 3 s 内完成收敛;
Overlay 用 EVPN-VXLAN,控制平面 BGP-EVPN,数据平面 VXLAN-UDP,ARP 代理在 Leaf 本地代答,广播域抑制 90%。
微突发可视化
交换机本地跑 sFlow,采样比 1:2048,把 buffer 占用、出队延迟实时送到 Grafana;
配合 Arista LANZ,可看到微秒级队列尖峰,提前触发自动扩容脚本。
服务器侧调优:别让网卡拖后腿
中断亲缘
开启 NUMA 绑定,每个 25 G 口对应所在 CPU 的本地内存,跨 NUMA 延迟从 2 µs 降到 0.6 µs;
网卡 RSS 把队列绑到不同 core,规避“一核有难,七核围观”。
包缓冲区
Linux 默认 256 RX/TX Descriptor 太小,改 4096,可把 25 G 线速小包转发 CPU 占用从 35% 降到 18%;
开启 RSC(Receive Side Coalescing),把 64 B 小包聚成 9 KB 巨帧,中断次数下降 95%。
虚拟化场景
开启 SR-IOV,16 VFs 直通到 VM,vSwitch 旁路,延迟再降 30%;
若用 OVS-DPDK,hugepage 给 4 G,转发延迟稳定在 5 µs,已接近物理机。
QoS 与流量调度:让“老鼠流”先走
队列映射
0-2 级:RDMA、RoCE v2、高频交易,严格优先级(SP);
3-5 级:普通业务,DWRR,权重 40:30:30;
6-7 级:冷数据备份,最低优先级,限速 10%。
端到端 PFC 风暴防护
开启 PFC Watchdog,如果 Spine 持续反压 500 ms 即自动 shut 对应端口,防止“头阻塞”扩散到全网;
实测 1000 台服务器同时发 25 G 线速 RoCE,零丢包,吞吐 24.8 Gbps/端口。
容量规划:10 年不翻车的“积木式”扩容
初期(≤ 2 k 服务器)
4 台 Spine,32×100G,可接 32 台 Leaf;
单 Leaf 48×25 G,整机 1.2 T 下行,收敛比 1:2,完全无阻塞。
中期(2 k-8 k 服务器)
Spine 端口升级到 400 G,数量加到 8 台;
Leaf 上行 6×100G→6×400G,下行保持 48×25 G,收敛比 1:1.5。
长期(> 8 k 服务器)
引入“超 Spine”层,把多组 Spine-Leaf 当“虚拟机架”看;
Leaf 侧 25 G 可无缝割接到 100 G,只需换光模块,保护线槽与光纤投资。
运维与可观测性:让排障像“回滚代码”一样简单
零接触开局(ZTP)
Leaf 上电后通过 DHCP 拿到镜像与配置文件,3 min 自动上线;
配置模板用 Ansible Jinja2 一次性渲染,100 台 Leaf 同时变更,误差 < 30 s。
实时遥测
每 10 s 上报端口光功率、电压、温度;
buffer 占用、ECMP 哈希冲突、PFC Pause 帧计数,秒级粒度;
异常阈值触发 Webhook,直接对接钉钉/飞书机器人。
灰度升级
ISSU(In-Service Software Upgrade)主备分区,升级过程业务 0 丢包;
先升 Spine,再升 Leaf,单台升级窗口 3 min,整网滚动 2 h 完成。
落地案例
某券商量化交易云
48 台 Leaf,4 台 Spine,全 25 G;
服务器单跳延迟 850 ns,行情到订单回报 6 µs,比旧网提升 4 倍;
交易高峰 120 万笔/秒,0 丢包,全年故障时间 < 5 min。
AI 推理云
7050SX3-48YC8 作 Leaf,上行 100 G 接 400 G Spine;
GPU 推理节点 25 G 直联,训练节点 100 G 直联,东西向流量 1:1 无阻塞;
单卡推理延迟从 12 ms 降到 8 ms,客户体验提升 33%。
常见坑与避坑指南
坑 1:买“低价” 25 G 交换机却不支持 PFC,结果 RoCE 一跑就丢包;
→ 选型前强制要求厂商出示 RFC 9000 测试报告。
坑 2:光纤混用 OM3/OM4,25 G 只能跑 30 m,机柜一多就超距;
→ 统一采用 OM4 或单模,预算允许直接上 BiDi 光模块。
坑 3:只给 Spine 做冗余,忽略 Leaf 双电源,单电源故障照样断网;
→ Leaf 必须 1+1 电源、N+1 风扇,且颜色编码,3 min 可热插。
结语:把简单留给未来
10/25G 不是“过渡”,而是“现金牛”。把 Spine-Leaf 做到极致,单跳 800 ns、10 年扩展不翻车,远比盲目追 100 G 更划算。当 AI 推理、边缘计算、工业视觉持续井喷,第一公里的延迟瓶颈往往卡在叶交换机——把这一公里走稳,后面的带宽故事才能越讲越大。