第三章:主流网卡厂商与型号
聊到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 三家对比:一张图看懂
我画了一张对比图,方便你快速决策。说白了,选型就三个维度:性能、生态、成本。
3.5 我的选型建议
说了这么多,到底怎么选?我总结几条实战经验:
- AI训练集群:无脑Mellanox ConnectX-6或7。硬件卸载能力是刚需,否则GPU利用率上不去。
- 企业级虚拟化:Broadcom NetXtreme-E。兼容性好,VMware支持完善。
- 通用数据中心:Intel E810。如果你已经用了Intel CPU,管理工具链统一,省心。
- 预算有限:Intel E810或Broadcom NetXtreme-4。别为了省钱买杂牌,RoCE对网卡要求高。
个人习惯:我每次选型前,都会先跑一遍perftest的延迟和带宽测试。别信厂商的PPT,实测数据最靠谱。记得用ib_write_bw和ib_write_lat这两个工具。
嗯,这一章就到这里。网卡选型是RoCE落地的第一步,选对了后面能省很多事。下一章我们聊聊网卡固件和驱动的那些坑——我踩过的坑,你就不用再踩了。