同硬件条件下,通常性能排序是:
IB 原生 RDMA ≈ RoCE(RDMA) > IPoIB > TCP(以太网常规栈)
1) 各自是什么
- TCP(常规):以太网 + 内核 TCP/IP 栈,通用性最好,开销也较高。
- RoCE:RDMA over Converged Ethernet,走以太网但用 RDMA 语义(低延迟、低 CPU)。
- IB(原生):InfiniBand 原生 RDMA,延迟和稳定性通常最优。
- IPoIB:IP over InfiniBand,本质仍是 IP/TCP/UDP,只是底层链路是 IB;兼容性好但不等于原生 RDMA。
2) 性能维度对比(常见规律)
吞吐(大流)
- IB 原生 RDMA / RoCE:最高,最容易逼近链路能力
- IPoIB:中高,通常低于 RDMA 方式
- TCP 常规:视网卡和栈优化,通常最低(但也可能接近线速)
时延(小包 / RPC)
- IB 原生 RDMA:最低
- RoCE:接近 IB(网络拥塞配置不好时波动会变大)
- IPoIB:明显高于 RDMA
- TCP 常规:通常最高
CPU 开销
- RDMA(IB/RoCE):最低(零拷贝/旁路优势)
- IPoIB:中等
- TCP 常规:较高
3) 关键现实因素(决定你实际结果)
- RoCE 网络是否正确配了 PFC/ECN/DCQCN(没配好会掉性能)
- IPoIB 模式(datagram vs connected mode)与 MTU
- 应用模型(大块流 vs 高频小消息)
- 内核/驱动/固件版本组合
- 是否跨机架、多跳拥塞
4) 选型建议(很实用)
- 要极致时延/CPU效率:选 IB RDMA 或 RoCE RDMA
- 不改业务协议但想利用 IB 网络:选 IPoIB
- 兼容性优先、运维最简单:继续 TCP