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

Shared Completion Queue与Shared Receive Queue的区别?SRQ有何作用?

共享接收队列(SRQ)与共享完成队列(SCQ)的区别及SRQ特性

核心定位差异

  • 共享完成队列(SCQ):把多个Queue Pair(QP)的完成事件(比如发送/接收操作完成的通知)集中到同一个CQ中,你单线程只需轮询这一个CQ就能处理所有QP的完成事件。但每个QP的发送、接收缓冲区仍各自独立,SCQ仅负责事件收集,不涉及数据缓冲区的复用。
  • 共享接收队列(SRQ):让多个QP共用同一批接收缓冲区,所有QP的接收操作都从这个共享队列中获取缓冲区使用。完成事件可走各自CQ,也可搭配SCQ,核心是解决接收资源的复用问题。

SRQ的独特优势

  • 大幅节省内存:如果有上百上千个QP,每个QP单独开接收队列会占用大量内存,用SRQ只需维护一套接收缓冲区,内存开销能显著降低。
  • 简化接收逻辑:无需给每个QP单独维护接收队列状态、提交接收请求,只需给SRQ批量提交接收请求,所有关联QP都能自动使用这些缓冲区,减少代码中的重复操作。
  • 动态适配接收负载:当某个QP突然有大量接收需求时,SRQ会自动将空闲缓冲区分配给它,无需手动给每个QP调配接收资源,适配性更强。
  • 支持批量接收请求提交:可一次性给SRQ提交多个接收请求,这些请求会被所有关联QP共享使用,效率远高于给每个QP单独提交。

关键区别总结

  • 管理对象:SCQ负责完成事件,SRQ负责接收缓冲区
  • 复用层面:SCQ是事件入口复用,SRQ是内存资源复用
  • QP独立性:使用SCQ时,每个QP的收发缓冲区仍独立;使用SRQ时,多个QP共享接收缓冲区,发送缓冲区保持独立
  • 核心价值:SCQ减少轮询CQ的工作量,SRQ减少内存占用和接收资源的管理成本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:03:23