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 在 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 實現方案
K-min, K-max, P-max
按優先級隊列進行 WRED ECN 標記,K-min 與 K-max 閾值及 P-max 標記概率均可配置。開箱即享 xCCL 級預設值,以 YANG 路徑開放供調優。
獨立於 PFC
ECN 標記與 PFC pause 閾值是獨立配置的。兩者不匹配是最常見的 DCQCN 配置錯誤。OcNOS 會在應用之前,校驗 K-max、headroom 與 pause 觸發之間的關係。
基於 VXLAN 的 ECN
ECN 比特位在 VXLAN 封裝/解封裝過程中得以保留,因此 DCQCN 可在 EVPN-VXLAN overlay 上實現端到端工作,而不僅限於 underlay。
每隊列 ECN 計數器
通過 gNMI 流式上報每個出向隊列被 ECN 標記的報文計數、隊列深度分布以及 CNP 觸發速率。可在叢集上線(bring-up)期間進行閉環調優。
在投入前先驗證
通過 CLI 進行健全性檢查,確認 K-min / K-max / PFC 餘量與分配給無損優先級的緩衝空間在數學上一致,從而對錯誤配置快速失敗。
DC-PLUS 許可層級
屬於 OcNOS-DC PLUS SKU 的一部分。同款鏡像、同款支持;無需任何按功能付費的附加項即可激活無損 RDMA 協議棧。
為什麼這一點比聽起來更重要
大多數「RoCEv2 行為異常」的支持工單都歸結於 DCQCN 閾值未對齊。要麼 ECN 已配置卻從不標記(K-min 設置過高),導致 PFC 承擔全部擁塞控制負擔;要麼 ECN 標記過於激進(K-min 設置過低),導致發送端在出現真正擁塞之前就降速。OcNOS-DC 出廠預設值適用於大多數 TH4 / TH5 架構;對於需要偏離預設的架構,每一項參數都採用 YANG 建模且可查證。