AI 集群网络调优:ECN 水位线没配好,你知道会发生什么吗?

— AI算力网络系列 第④篇 —
AI算力网络系列连载
前一篇讲了PFC的工作机制与副作用——

PFC通过PAUSE帧让上游暂停发送,从而保住缓冲区、避免丢包。 但PFC的本质是被动响应:缓冲区水位已经到达阈值, 拥塞实际上已经发生,PFC才介入。
被动响应有两个代价:
第一,PAUSE 帧向上游逐跳传播,形成背压, 严重时引发HoL Blocking,极端情况下造成PFC死锁。
第二,PAUSE帧的粒度是端口级别, 一旦触发,该优先级下所有流量全部暂停, 无法区分哪条流是拥塞源头。
ECN的目标,是在PFC触发之前就把拥塞消解掉。
ECN 的基本原理
ECN,全称Explicit Congestion Notification,显式拥塞通知。
标准定义在RFC3168,核心机制分两个层面:
① 交换机标记当交换机的出端口队列深度超过预设阈值时, 不丢弃数据包,而是在包头的IP ECN字段打上拥塞标记—— 将ECN字段从 01 或 10(支持ECN)修改为 11(发生拥塞)。
② 接收方通知发送方接收方收到带有拥塞标记的数据包后, 在回复的 ACK 报文中设置 ECE(ECN-Echo)标志, 通知发送方:路径上出现了拥塞。
发送方收到ECE通知后,主动降低发送速率。

ECN标记与反馈路径
整个过程中,没有一个包被丢弃,拥塞信号通过包头字段传递,发送方主动响应。
ECN在RoCEv2中的工作方式
标准ECN依赖TCP的ACK机制来回传拥塞通知。 RDMA绕过了TCP协议栈,ACK机制不再适用。

RoCEv2 中 ECN 的反馈路径
RoCEv2环境下,ECN的反馈路径做了对应调整:
接收方收到带ECN标记的数据包后, 生成一个 CNP(Congestion Notification Packet,拥塞通知包), 直接发回给发送方的 RDMA网卡(RNIC)。
发送方的RNIC收到CNP后, 按照 DCQCN 算法降低对应QP的发送速率。
这里有一个重要细节:
CNP的发送频率有上限控制, 默认每个流每 50 微秒最多发送一个 CNP, 防止CNP报文本身占用过多带宽。
ECN的核心参数:水位线
ECN的标记行为由交换机上的两个阈值控制:
Kmin(最小阈值)队列深度低于Kmin时,不标记任何包。 网络处于正常状态,无需干预。
Kmax(最大阈值)队列深度超过Kmax时,对所有包打满标记。 拥塞已经严重,需要让所有发送方立刻降速。
Kmin 到 Kmax 之间按概率标记,队列越深,标记概率越高。 这个区间实现了渐进式的拥塞反馈, 避免所有发送方同时降速造成的流量振荡。

ECN 水位线三区间示意
三个参数的设置直接影响ECN的响应灵敏度:
-
Kmin设得太高:拥塞已经较严重才开始标记, ECN的提前介入优势丧失,PFC仍会频繁触发 -
Kmin 设得太低:正常流量波动也会触发标记, 发送方频繁降速,带宽利用率下降 -
Kmax与Kmin区间太窄:所有发送方几乎同时收到拥塞通知, 集体降速后流量骤降,随后又集体升速,形成周期性振荡
ECN 与 PFC 的关系
ECN和PFC不是替代关系,是分层防御:
正常状态↓ 队列深度超过 KminECN 开始标记 → 发送方收到 CNP → 主动降速↓ 降速不及时,队列继续上涨↓ 队列深度超过 PFC 阈值PFC 触发 → PAUSE 帧发出 → 强制暂停上游↓ 极端情况丢包
ECN在第一层介入,依赖发送方的主动配合。 PFC在第二层兜底,强制暂停,不依赖发送方的配合。

理想状态下,ECN把拥塞消解在萌芽阶段, PFC几乎不需要触发。
衡量一个AI集群网络调优质量的重要指标之一, 正是 PFC 触发次数与 ECN 标记次数的比值—— ECN标记多、PFC触发少,说明拥塞被提前消解; PFC频繁触发,说明ECN的水位线配置需要重新审视。
ECN的局限性
ECN依赖发送方的主动降速,存在一个前提假设:
发送方必须支持 ECN,且必须及时响应 CNP。

Incast 场景示意
在RoCEv2集群里,这个条件通常满足—— 主流RNIC(如 Mellanox ConnectX 系列)均支持 DCQCN, CNP 响应机制内置在硬件中。
但ECN无法解决所有拥塞场景:
-
Incast 场景:大量发送方同时向同一个接收方发送数据, 队列在极短时间内从空到满,ECN来不及响应, PFC直接触发甚至发生丢包 -
参数配置不当:Kmin/Kmax 水位线、CNP 发送间隔、 DCQCN速率恢复参数之间相互影响, 任何一个参数配置失当都可能让ECN失效
这也是为什么AI集群的网络调优, 需要将 ECN、PFC、DCQCN 作为一个整体来设计, 而不是单独配置每一个机制。
小结
ECN 通过在 IP 包头打标记的方式, 将拥塞信号从交换机传递给发送方, 让发送方在缓冲区溢出、丢包发生之前主动降速。
在 RoCEv2 环境中,ECN 标记触发 CNP 报文, 由 DCQCN 算法控制发送方的速率调整行为。
ECN 是 AI 集群无损网络的第一道主动防线, 目标是将 PFC 的触发频率降到最低。
下一篇:DCQCN 是什么?ECN 和 PFC 如何被协调成一套完整的拥塞控制体系?
报名信息


无论你是网络工程的初学者,还是希望提升技能的专业人士,YESLAB致力于提供系统化的技术学习资源。通过灵活的学习模式和实战案例解析,帮助你逐步构建专业知识体系,探索职业发展的可能性。加入YESLAB,与行业爱好者共同成长,如需了解更多学习资源,可联系课程顾问获取,开启你的技术进阶之旅!
夜雨聆风