DCQCN:面向 RDMA 的量化拥塞控制

DCQCN 是一种闭环拥塞控制机制,可使 RoCEv2 AI 组网远离 PFC pause 并避免丢包:交换机提前进行 ECN 标记,接收端回送 CNP,发送端据此量化调整其速率。OcNOS-DC 为 xCCL(NCCL / RCCL / oneCCL)集合通信负载提供了预调优的默认参数,并对外开放每一个阈值,以满足需要偏离默认值的组网需求。

DCQCN 闭环

发送端 NIC、拥塞交换机、接收端 NIC。交换机的 WRED ECN 标记器触发 before 队列触及 PFC pause 阈值。接收方生成一个 Congestion Notification Packet(CNP);发送方的反应点降低速率,随后再回升。无丢包、无 PFC 压力、快速收敛。

DCQCN 闭环拥塞控制 从左到右共三个方框:发送端网卡(reaction point)、带 WRED ECN 标记器的拥塞交换机、接收端网卡(notification point)。正向箭头表示报文从左向右流动并被交换机标记。反向箭头表示 CNP 从右向左回传至发送端。标注指明了 ECN K-min、K-max 阈值以及 CNP 反馈路径。 数据 + 支持 ECN ECN = CE(已标记) CNP:拥塞通知报文 发送端 NIC反应点(Reaction Point)α-update · cut · ramp OcNOS-DC 交换机WRED ECN 标记器K-min · K-max · P-max 接收端 NIC通知点每 50 µs 发送一次 CNP DCQCN · WRED MARKING · CNP FEEDBACK · QUANTIZED RATE LIMIT · LOSSLESS RoCEv2

DCQCN 在 AI 网络中所承担的工作

RoCEv2 有两种处理拥塞的方式:PFC pause(逐跳传播的反压)和 DCQCN(端到端速率控制环路)。单独使用 PFC 也能奏效,但它会将拥塞向上游推送,并可能引发 pause 风暴和队头阻塞。DCQCN 在 PFC 之前发挥作用,通过 ECN 对报文进行标记 before 队列到达暂停阈值,从而让发送端在交换机不得不发起暂停之前就降速。

做得好,您 fabric 生命周期的大部分时间都只依赖 DCQCN 反馈,以 PFC 作为安全兜底。做得差,ECN 阈值与 PFC headroom 不匹配,即便配置了 DCQCN,您仍会遭遇 pause 风暴。 阈值调优是全部关键所在、OcNOS-DC 提供针对 xCCL 集体通信调优的默认值,同时为具有特定流量模式的 fabric 开放所有参数。

三大要素

  • 反应点(发送端 NIC)。 接收 CNP 并运行 DCQCN 的 α 更新/乘性递减/加性递增循环,以量化其发送速率。
  • 拥塞点(交换机)。 将支持 ECN 的报文标记为 CE 当队列深度越过 K-min 时采用 WRED 曲线,标记概率随之线性上升,并在 K-max 处达到 P-max。
  • 通告点(接收端 NIC)。 针对每条被标记的流向发送端生成一个 CNP,并进行速率限制(通常每条流每 50 µs 一个)。

OcNOS DCQCN 实现方案

WRED 曲线

K-min, K-max, P-max

按优先级队列进行 WRED ECN 标记,K-min 与 K-max 阈值及 P-max 标记概率均可配置。开箱即享 xCCL 级默认值,以 YANG 路径开放供调优。

Per-Priority

独立于 PFC

ECN 标记与 PFC pause 阈值是独立配置的。两者不匹配是最常见的 DCQCN 配置错误。OcNOS 会在应用之前,校验 K-max、headroom 与 pause 触发之间的关系。

VXLAN 感知

基于 VXLAN 的 ECN

ECN 比特位在 VXLAN 封装/解封装过程中得以保留,因此 DCQCN 可在 EVPN-VXLAN overlay 上实现端到端工作,而不仅限于 underlay。

遥测

每队列 ECN 计数器

通过 gNMI 流式上报每个出向队列被 ECN 标记的报文计数、队列深度分布以及 CNP 触发速率。可在集群上线(bring-up)期间进行闭环调优。

Diagnostics

在投入前先验证

通过 CLI 进行健全性检查,确认 K-min / K-max / PFC 余量与分配给无损优先级的缓冲空间在数学上一致,从而对错误配置快速失败。

Scope

DC-PLUS 许可层级

属于 OcNOS-DC PLUS SKU 的一部分。同款镜像、同款支持;无需任何按功能付费的附加项即可激活无损 RDMA 协议栈。

为什么这一点比听起来更重要

大多数“RoCEv2 行为异常”的支持工单都归结于 DCQCN 阈值未对齐。要么 ECN 已配置却从不标记(K-min 设置过高),导致 PFC 承担全部拥塞控制负担;要么 ECN 标记过于激进(K-min 设置过低),导致发送端在出现真正拥塞之前就降速。OcNOS-DC 出厂默认值适用于大多数 TH4 / TH5 架构;对于需要偏离默认的架构,每一项参数都采用 YANG 建模且可查证。

正在为真实工作负载调优 DCQCN?把您的 trace 发给我们。

申请技术演示 →