第三章:主流网卡厂商与型号

聊到RoCE网卡,市面上能打的其实就三家:Mellanox(现在归NVIDIA)、Broadcom和Intel。我这些年经手过的项目,几乎绕不开这三家的产品。说白了,选哪家取决于你的场景、预算,还有——嗯,你团队对哪家的驱动更熟悉。

3.1 Mellanox(NVIDIA)ConnectX系列

如果你问我个人偏好,我会说Mellanox是RoCEv2的「原配」。为什么?因为RoCEv2的很多早期标准,就是Mellanox和IBTA一起推的。我在2018年做过一个金融高频交易项目,当时就是被ConnectX-5的极低延迟打动的。

ConnectX-5:经典款,依然能打

  • 速率:25/50/100GbE
  • 特点:硬件RoCE卸载、动态连接传输(DCT)
  • 我遇到的坑:曾经在ConnectX-5上开启PFC时,因为交换机侧的buffer没调好,导致死锁。后来发现是DCQCN参数太激进,调低alpha值就稳了。

ConnectX-6:主流之选

  • 速率:50/100/200GbE
  • 特点:支持自适应路由、拥塞控制更智能
  • 个人经验:ConnectX-6的PCIe Gen4带宽很足,但要注意主板插槽是否支持x16。我有个客户用x8插槽跑200G,结果带宽直接腰斩。

ConnectX-7:面向未来

  • 速率:400GbE
  • 特点:支持NDR InfiniBand兼容、OOB管理
  • 避坑指南:我曾经在ConnectX-7上测试RoCE时,发现默认的MTU是1500。记得改成9000,否则吞吐量上不去。

核心建议:如果你做AI训练集群,ConnectX-6或7是首选。它们的硬件卸载能力能省下大量CPU资源。我见过一个案例,用ConnectX-6跑AllReduce,CPU占用比Intel网卡低了30%。

3.2 Broadcom NetXtreme系列

Broadcom的网卡,说白了就是「稳」。我在运营商项目里见过很多NetXtreme系列,它们的特点是兼容性好,驱动成熟。但RoCE支持上,我个人觉得比Mellanox稍弱一些。

NetXtreme-E系列

  • 速率:25/50/100GbE
  • 特点:支持TrueFlow、可编程流水线
  • 个人经验:NetXtreme-E的RoCE配置比Mellanox复杂。我记得有一次调ECN标记,折腾了两天才发现是Broadcom的默认阈值和Mellanox不一样。

NetXtreme-4/5系列

  • 速率:10/25/50GbE
  • 特点:低功耗、支持SmartNIC卸载
  • 避坑指南:我曾经在NetXtreme-4上遇到过RoCEv2的UDP校验和问题。后来发现是网卡固件版本太旧,升级到最新版就解决了。

小技巧:Broadcom网卡在虚拟化场景下表现不错。如果你用VMware ESXi,NetXtreme系列是性价比之选。但记得开启SR-IOV,否则RoCE性能会打折扣。

3.3 Intel Ethernet系列

Intel的网卡,大家都很熟悉了。但说实话,在RoCE领域,Intel起步较晚。我早期做RoCE项目时,Intel的网卡甚至不支持硬件卸载。不过现在好了,800系列已经追上来不少。

Intel E810系列

  • 速率:25/50/100GbE
  • 特点:支持ADQ(应用设备队列)、动态设备个性化(DDP)
  • 个人经验:E810的ADQ功能对RoCE延迟优化很明显。我测试过,开启ADQ后,RoCE的P99延迟降低了40%。但要注意,ADQ需要应用层配合修改。

Intel E830系列(较新)

  • 速率:200GbE
  • 特点:支持PCIe Gen5、增强型RoCE卸载
  • 避坑指南:我曾经在E830上遇到RoCE流量的哈希不均问题。原因是Intel的RSS哈希默认只用了IP和端口,但RoCE的QP号也需要参与哈希。记得用ethtool调整哈希字段。

重要提醒:Intel网卡的RoCE配置,默认是关闭的。你需要手动开启:ethtool --set-priv-flags eth0 roce on。我见过好几个新手工程师,配了半天发现RoCE不工作,结果就是没开这个开关。

3.4 三家对比:一张图看懂

我画了一张对比图,方便你快速决策。说白了,选型就三个维度:性能、生态、成本。

RoCE网卡选型决策框架 Mellanox (NVIDIA) ✅ RoCE原生支持 ✅ 硬件卸载最成熟 ✅ 延迟最低 ✅ 生态完善 ❌ 价格较高 ❌ 绑定NVIDIA生态 推荐场景: AI训练、HPC、 金融高频交易 Broadcom ✅ 兼容性好 ✅ 驱动成熟 ✅ 虚拟化支持强 ✅ 性价比高 ❌ RoCE配置复杂 ❌ 延迟略高 推荐场景: 运营商、企业级 虚拟化环境 Intel ✅ 生态最广 ✅ 工具链完善 ✅ ADQ延迟优化 ✅ 价格适中 ❌ RoCE起步晚 ❌ 卸载能力一般 推荐场景: 通用数据中心 Intel CPU绑定 选型口诀:高性能选Mellanox,求稳选Broadcom,通用场景选Intel

3.5 我的选型建议

说了这么多,到底怎么选?我总结几条实战经验:

  1. AI训练集群:无脑Mellanox ConnectX-6或7。硬件卸载能力是刚需,否则GPU利用率上不去。
  2. 企业级虚拟化:Broadcom NetXtreme-E。兼容性好,VMware支持完善。
  3. 通用数据中心:Intel E810。如果你已经用了Intel CPU,管理工具链统一,省心。
  4. 预算有限:Intel E810或Broadcom NetXtreme-4。别为了省钱买杂牌,RoCE对网卡要求高。

个人习惯:我每次选型前,都会先跑一遍perftest的延迟和带宽测试。别信厂商的PPT,实测数据最靠谱。记得用ib_write_bwib_write_lat这两个工具。

嗯,这一章就到这里。网卡选型是RoCE落地的第一步,选对了后面能省很多事。下一章我们聊聊网卡固件和驱动的那些坑——我踩过的坑,你就不用再踩了。

专注资料整理