You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单QP多线程与多QP方案提升RDMA吞吐量的优劣对比

RDMA Write 吞吐量优化方案对比与选型建议

结论先行:创建多QP在多QP间做流量负载均衡是RDMA领域提升业务吞吐量的通用业界标准实践,多线程并发操作单个QP的方案几乎不在生产环境高吞吐场景使用。

方案1:多QP跨连接负载均衡

这是目前所有主流RDMA生产场景(包括高性能计算集合通信、分布式存储、AI训练RDMA网络等)通用的实现方案,核心优势如下:

  • 能真正打满硬件带宽上限:主流RDMA网卡的硬件调度逻辑是按QP粒度分配发送调度资源、DMA通道资源的,单个QP存在明确的硬件性能天花板,通常单QP吞吐量只能跑到网卡标称带宽的30%~60%;多QP可以让网卡将请求分散到多个硬件并行队列处理,配合多通道DMA可以轻松跑满网卡全线速。在RoCE组网场景下,不同QP可以使用不同的源端口号,还能利用交换机的ECMP等价路由走多条物理链路,充分利用多路径网络带宽。
  • 无锁化路径开销极低:每个工作线程可以绑定独立的QP,调用ibv_post_send时完全不需要跨线程加锁,整个发送路径的CPU开销可以压到最低,不会出现锁竞争带来的上下文切换、缓存失效损耗。
  • 故障和QoS隔离能力强:不同QP的发送请求、流控、重传逻辑完全独立,单个QP出现RNR重传、状态错误不会影响其他QP上的业务流量,也可以针对不同QP配置差异化的服务等级,适配不同优先级的业务需求。
  • 完美适配NUMA架构:可以将不同QP绑定到对应NUMA节点的CPU核心、网卡硬件队列,避免跨NUMA访问MMIO寄存器、内存带来的额外开销,进一步压榨硬件性能。

这个方案的唯一成本是需要在初始化阶段和远端建立多组QP,连接管理逻辑比单QP稍复杂,但这部分是一次性开销,不会影响运行期性能。

方案2:多线程并发提交单个QP的发送请求

这个方案没有通用场景下的性能优势,仅在连接数严格受限、吞吐量要求不高的极特殊场景下可以考虑,它的特点如下:

  • 唯一优势:连接管理逻辑简单,不需要维护多组QP的状态,连接建立的一次性开销极低。
  • 核心缺陷非常明显:
    • 并发开销极高:绝大多数厂商的ibverbs驱动没有实现单QP的无锁并发post逻辑,多线程同时调用ibv_post_send必须在应用层加锁保护,高IOPS场景下锁竞争的开销会吃掉大量CPU资源,极端情况下多线程的post性能甚至不如单线程操作同一个QP。
    • 无法突破单QP性能天花板:不管应用层往单个QP提交多少请求,网卡硬件只会给单个QP分配固定的调度权重,根本不可能跑满网卡的总带宽。
    • 故障域过大:单个QP一旦发生流控阻塞、状态异常,所有线程的全部业务请求都会被阻塞,没有任何故障隔离能力。
    • 无法利用网络多路径:RoCE场景下单个QP的流量对应固定五元组,只能走单条交换网络路径,哪怕组网做了多链路冗余也无法利用多余带宽。

生产实践参考:UCX、NCCL等主流高性能通信库,以及Ceph、Lustre等使用RDMA的存储系统,均采用多QP分流的方案做吞吐量优化,通常会按照CPU核心数、网卡硬件队列数创建对应数量的QP,配合线程-QP绑定、CPU亲和性、NUMA亲和性配置拿到最优性能。

内容的提问来源于stack exchange,提问作者Mihir Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 03:12:23