/ ai资讯

如何用AI负载为SONiC交换机调整ECN水线

发布时间:2025-07-11 15:46:31

什么是ECN?

显式拥塞通知(ECN)是计算机网络中的一种机制,它允许发送设备明确地通知接收设备网络拥塞,而不是依赖于传统的“丢包”方法。在传统的TCP/IP网络中,当路由器或交换机出现拥塞时,它会丢弃数据包以防止进一步的数据包丢失,这是有损的。

ECN通过引入一种新的数据包标记类型来解决这些问题,这种标记称为 “CE” (经历拥塞),它在不丢弃数据包的情况下通知发送方网络拥塞。ECN允许设备做出智能化的决策,以减少它们的流量速率来缓解拥塞。在这种情况下,端侧拥塞控制协议,比如DCQCN将被用来减少流量速率以进行拥塞控制。

ECN如何工作?

ECN标记机制的工作原理是基于出口队列利用率来使用标记概率线。当队列使用率低于最小阈值(Kmin)时,不标记任何数据包。对于Kmin和Kmax之间的队列使用率,应用概率P来标记数据包。

sonic-mgmt/docs/ECN-test-plan.md at master · sonic-net/sonic-mgmt

SONiC无损队列?

交换机队列(如图1)是存储等待被交换机转发数据包的缓冲区。它就像一个临时存储区域,数据包在这里暂时存储,然后被传输到它们的最终目的地。

图1、端口队列

“SONiC默认有两个无损优先级:3和4。需要注意的是,只有无损优先级才能对PFC帧做出反应或生成PFC帧。换句话说,PFC帧不应该对有损优先级的流量有任何影响。DSCP 3和4的数据包分别映射到优先级3和4。”

sonic-mgmt/docs/testplan/PFC-test-plan.md at master · sonic-net/sonic-mgmt

本例中,我们不采用优先级流控制(PFC)来管理拥塞,只是遵循SONiC无损队列的指导原则。

把AI负载的DSCP映射到队列中,需要如下的步骤:

映射DSCP-TC → 绑定接口DSCP-TC配置 → 映射TC-queue → 绑定接口TC-queue配置。

把DSCP映射Traffic Class(TC)(图2)。

图2、DSCP映射到Traffic Class

你可以通过config命令(需要sudo)创建多个dscp-tc的配置(图3)。

图3、创建dscp-tc配置

为接口绑定dscp-tc配置,如下命令,其中AZURE是创建的profile的名称,Ethernet144是绑定的端口

config interface qos dscp-tc bind Ethernet144 AZURE

映射Traffic Class到队列

图4、TC与队列映射配置

为接口绑定tc-queue配置,如下命令

config interface qos tc-queue bind Ethernet144 AZURE

队列的缓存配置

交换机上的入口和出口缓冲区在转发过程中都扮演着关键角色。具体来说,入口缓冲区有助于触发PFC的决策过程,而出口缓冲区则在决定何时用ECN-CE标记数据包方面起着至关重要的作用。

图5、入口及出口缓冲区

同时,你还需要为接口配置缓冲区大小。如下命令,其中egress_lossless_profile 为缓冲区配置的名称。

config interface buffer bind queue Ethernet144 3 egress_lossless_profile

ECN水线调优

通过SONiC ECN设置,您可以配置多达三个不同的[min, max, P]集,这些配置集通过一个包含绿色、黄色和红色后缀来设置。在本例中,我们也将利用这个特性来探索其潜在益处。

我们将添加一个新的WRED配置文件‘test’,并首先配置红色集。

config wred add test --mode ecn

config wred update --ecn-gmin 20000000 --ecn-gmax 26000000 --ecn-gmark 80 --no-ecn-yellow --no-ecn-red --mode ecn test

图6、第一次尝试水线

将ECN配置与接口绑定

config interface wred bind queue Ethernet144 3 test

结合Keysight AI工作负载模拟和DCQCN特性,我们可以估计总线带宽利用率大约为20.77 GB/s,这相当于理想带宽利用率的约42%。被标记为ECN-CE的数据包数量较多,这表明流量速率控制介入较晚,导致缓冲区使用率升高,相应地,标记概率也较高。

图7、第一次尝试集合通信基准测试

为了主动管理拥塞,我们可以尝试设置较低的ECN最小和最大阈值,以便更早地触发拥塞控制机制。

config wred update --ecn-gmin 10000000 --ecn-gmax 20000000 --ecn-gmark 80 --no-ecn-yellow --no-ecn-red --mode ecn test

图8、第二次尝试水线

在进行了这些调整之后,我们成功地实现了大约53%的优化总线带宽利用率,同时在模拟过程中显著减少了接收到的ECN-CE数据包。

图9、第二次尝试集合通信基准测试

在尝试调整Kmin和Kmax设置后,我们发现逐步调整并不能始终如一地实现最佳总线带宽利用率。因此,我们引入了额外的黄色集配置来进一步优化性能。

config wred update --ecn-gmin 20000000 --ecn-gmax 30000000 --ecn-gmark 80 --ecn-ymin 2000000 --ecn-ymax 20000000 --ecn-ymark 20 --no-ecn-red --mode ecn test

图10、第三次尝试水线

最终我们通过引入黄色配置集达到了96%的优化总线带宽利用率,使用少量的ECN-CE数据包来控制拥塞,成功的达到了调优目标。

图11、第三次尝试集合通信基准测试

总结

优化AI工作负载的ECN阈值需要精巧的平衡:在确保工作负载期间没有数据包丢失的同时,最小化ECN-CE标记。随着缓冲区消耗的增加,它可能导致接口上的转发延迟变长,最终影响作业完成时间。为了克服这一挑战,早期介入和降低标记概率至关重要。此外,将优先级流控制(PFC)作为补充解决方案可以进一步增强拥塞管理并优化整体系统性能。

关于是德科技

是德科技(NYSE:KEYS)启迪并赋能创新者,助力他们将改变世界的技术带入生活。作为一家标准普尔 500 指数公司,我们提供先进的设计、仿真和测试解决方案,旨在帮助工程师在整个产品生命周期中更快地完成开发和部署,同时控制好风险。我们的客户遍及全球通信、工业自动化、航空航天与国防、汽车、半导体和通用电子等市场。我们与客户携手,加速创新,创造一个安全互联的世界。

  • 负载 负载 关注

    关注

    2

    文章

    615

    浏览量

    35203

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com