网卡端口、速率与 PCIe 带宽
网卡的前面板上写着“2 × 100G”;服务器能否真的跑到 200 Gb/s,取决于卡后面的 PCIe 插槽,而某个模块能否工作,取决于笼子和控制器的通道映射——和交换机上一样,只是端口更少,总线也更容易配置不足。本文列出网卡上常见的笼子和速率、双速率端口与拆分线缆的规则、PCIe 的算法、OCP 3.0 封装形式,以及卡上光模块相关的功耗和散热限制。
网卡上的笼子与速率
| 笼子 | NIC 上常见的速率 | 常见控制器 | 说明 |
|---|---|---|---|
| SFP+ | 10G(部分支持 1G) | Intel X520/X710、Broadcom 5741x | 是否支持 1G 因卡而异;查阅规格书 |
| SFP28 | 25G、10G(罕见 1G) | Intel XXV710/E810-XXV、ConnectX-4 Lx/-6 Lx、Broadcom P225 | 25G 需要 FEC 协商一致(FEC & AN) |
| SFP56 | 50G、25G、10G | 部分 ConnectX-6 Lx/Dx | PAM4 通道 |
| QSFP28 | 100G、4 × 25G、2 × 50G、40G、4 × 10G | Intel E810-CQDA2、ConnectX-5/6、Broadcom P2100 | 仅在控制器允许的情况下可通过线缆拆分 |
| QSFP56 | 200G、100G、2 × 100G | ConnectX-6 Dx/-7、Broadcom P2200、Pensando | — |
| QSFP112 | 400G、200G、100G、4 × 100G | ConnectX-7、Broadcom P1400GD | 每通道 100G;可兼容 QSFP28/56 |
| QSFP-DD | 400G、2 × 200G、4 × 100G | Broadcom BCM57608 | — |
| OSFP(双端口) | 2 × 400G、800G | ConnectX-7/-8、BlueField-3 | 在 Nvidia 双端口设计中,一个笼子对应两个逻辑端口 |
| RJ45 | 1G / 10GBASE-T / mGig | X550、X710-T、BCM57416 | 无模块,PHY 在卡上 |
笼子的兼容性规则与交换机相同(端口类型与笼子)。
双速率端口与速率分组
- 多数 25G 网卡的每个端口都独立运行在 10G 或 25G——没有四端口分组——但少数双端口控制器共享一个 SerDes 组,会强制两个端口使用相同速率。
- 100G 网卡通常支持 40G 模块;200G/400G 网卡支持 100G 模块;往下跨越一代以上(SFP28 上用 1G,或经 QSA 在 QSFP56 上用 10G)很少被支持。
- 速率通常根据模块的合规代码自动选择;当模块是双速率或无法识别时,需要强制设置(
ethtool -s … speed)(工具)。
网卡上的拆分
| 情况 | 能否工作? |
|---|---|
| 100G QSFP28 网卡端口 → 交换机端 4 × 25G(DAC 分支线缆) | 仅当控制器支持“4 × 25G 端口拆分”模式(许多 Nvidia 和 Broadcom 网卡支持,多数 Intel 不支持);此时网卡会显示 4 个 netdev |
| 交换机 100G 端口 → 4 × 25G 到四个网卡 SFP28 端口 | 可行——这是常见方向;拆分在交换机上配置(拆分与 MPO) |
| 400G OSFP 双端口 → 2 × 400G 或 4 × 200G / 8 × 100G | Nvidia 双端口网卡:每个笼子 2 个逻辑端口;能否进一步拆分取决于固件 |
| 从 QSFP28 端口拆出 2 × 50G | 部分控制器支持 |
PCIe:端口的真实速率
| PCIe 代 | 每通道(原始) | x8 可用(≈) | x16 可用(≈) |
|---|---|---|---|
| Gen 3 | 8 GT/s | 56–63 Gb/s | 112–126 Gb/s |
| Gen 4 | 16 GT/s | 112–126 Gb/s | 225–252 Gb/s |
| Gen 5 | 32 GT/s | 225–252 Gb/s | 450–504 Gb/s |
| Gen 6 | 64 GT/s | ~450–500 Gb/s | ~900–1 000 Gb/s |
扣除编码和报文开销后,可用吞吐量约为原始速率的 85–90 %。把端口与通道数对应起来:
| 卡 | 端口 | 需求 |
|---|---|---|
| 2 × 25G | 50 Gb/s | Gen 3 x8 |
| 2 × 100G | 200 Gb/s | Gen 4 x16(Gen 3 x16 在约 126 处就饱和) |
| 1 × 200G / 2 × 100G(Gen 4) | 200 Gb/s | Gen 4 x16 |
| 2 × 200G | 400 Gb/s | Gen 5 x16 |
| 1 × 400G | 400 Gb/s | Gen 5 x16(或通过 “socket direct”/多主机方式用两个 x16) |
| 2 × 400G | 800 Gb/s | Gen 6 x16,或两个 Gen 5 x16 |
把 2 × 100G 网卡插进 Gen 3 x8 插槽,两个端口都能链路建立在 100G,但总吞吐量只有约 60 Gb/s——光模块没问题,是总线不够。用 lspci -vv 查看协商到的链路宽度和速率(LnkSta),以及 BIOS 的 bifurcation 设置。
OCP NIC 3.0
| 项目 | SFF(小型封装形式) | LFF(大型) |
|---|---|---|
| 尺寸 | 76 × 115 mm | 139 × 115 mm |
| PCIe | 最高 x16 | 最高 x32(两个 x16) |
| 功耗 | 最高 80 W | 最高 150 W |
| 端口 | 2–4 × SFP28/QSFP28/QSFP56/QSFP112 | 2 × QSFP-DD/OSFP 或更多 |
| 光模块存取 | 从前面板插拔,无需工具 | 相同 |
OCP 网卡位于服务器后部,有自己的气流通道;模块散热通常好于夹在 GPU 之间的 PCIe 网卡。
卡上光模块的功耗与散热
| 项目 | 限制 / 规则 |
|---|---|
| PCIe 插槽供电 | 25 W(x1…x8 低矮型),75 W(x16);400G 网卡使用 8 针辅助电源接口 |
| 网卡每笼子的预算 | SFP28:1.5 W(II 级);QSFP28:3.5–4.5 W;QSFP56/112:5–8 W;QSFP-DD/OSFP:12–20 W——以网卡数据手册为准(功耗) |
| 气流 | 网卡上约 200–300 LFM;1U 服务器中靠近 CPU 排风口的网卡上,模块温度较高——DDM 温度超过 60 °C 很常见 |
| 热降频 | 部分控制器在模块报告高温时会将其降到低功耗模式,或直接关闭端口 |
| 网卡上的相干/ZR 模块 | 标准网卡不支持——8 级功耗超出笼子预算 |
多主机与 socket direct
高端网卡可以同时呈现给两个 CPU 插槽(两条 x8 或 x16 链路),或呈现给多台主机。光模块侧不受影响,拆分发生在 PCIe 层面。这在 Gen 4 平台上运行 400G,以及每个 GPU 的网卡必须挂在自己的 PCIe root 下的 GPU 服务器中都很重要。
为光模块选购网卡前的检查清单
- 笼子类型,以及控制器在该笼子上支持的速率。
- 目标插槽的 PCIe 代数和通道数,与端口总带宽是否匹配。
- 是否需要拆分?控制器必须支持端口拆分。
- 驱动的模块策略(网卡上的光模块兼容性)。
- 笼子的功率预算与计划使用的模块是否匹配;是否有辅助电源接口。
- 机箱该位置的气流情况;如需更好散热可考虑 OCP 3.0。
- 操作系统/驱动对 FEC 模式和速率强制设置的支持。
在 CodingBox 中
模块的合规代码和功率等级说明它能否满足网卡笼子和速率的要求;CodingBox 在模块安装前就能读出这些信息,而端口拆分和 PCIe 方面的问题则要在服务器侧解决(Check transceiver)。