当前位置:
首页
文章
后端
详情

这个算法不一般,控制拥塞有一手!

数字时代下,远程办公、线上协同成为刚需,直播带货等业务模式盛行,数据流量爆炸式增长,低时延、高流畅的网络传输诉求给数据中心的处理能力带来了极大挑战。RDMA作为一种新型网络传输技术,可大幅提升网络传输实效,帮助网络IO密集的业务(比如分布式存储、分布式数据库等)获得更低的时延以及更高的吞吐,在提升数据中心整体算力方面发挥着重要作用。

随着RDMA被越来越多的数据中心所采用,RDMA拥塞控制也受到了广泛的关注。经典RDMA需要配置Priority Flow Control (PFC)来保证不丢包,进而形成无损网络以实现高性能。但PFC是一种粗粒度机制,它以端口(或端口加优先级)级别运行,不区分流,可能会导致拥堵蔓延,进而出现不公平现象、受害者流、PFC deadlock、PFC storm等一系列性能问题。

缓解PFC缺陷的根本性方案是使用一个流级别(per-flow)的拥塞控制算法。如果想要业务或者应用真正实现RDMA的高性能优势,设计、使用和配置符合业务场景需求的拥塞控制算法是重中之重。针对此,天翼云组建高性能网络团队,聚焦下一代高效CC算法设计,打造适应天翼云网络结构和业务场景的拥塞算法,优化用户体验。

拥塞原因 在网络交换机中,当入口流量大于出口流量的带宽时会发生网络拥塞。在数据中心中产生拥塞的原因较多,其中关键且常见的有以下3种: ①收敛比(总输入带宽/总输出带宽) 数据中心网络架构设计时,从成本和收益两方面来考虑,多数会采取非对称带宽设计,即上下行链路带宽不一致。当交换机连接的服务器上行发包总速率超过上行链路总带宽时,就会在上行口出现拥塞。因而收敛比越高,越容易造成拥塞。 ②ECMP等价多路径负载均衡 当前数据中心网络多采用Fabric架构,采用ECMP来构建多条等价负载的链路,并HASH选择一条链路来转发。ECMP虽然简单,但在选择链路过程中没有考虑到所选链路本身是否有拥塞,对于已经产生拥塞的链路来说,很可能加剧链路的拥塞。 ③Incast问题 这个算法不一般,控制拥塞有一手!

Incast是Many-to-One的通信模式。在数据中心云化的大趋势下,这种通信模式常常发生,尤其是那些以Scale-Out方式实现的分布式存储和计算应用,包括Hadoop、MapReduce、HDFS等。此外,交换机的缓存可以处理暂时的拥塞,但是当拥塞太久时,交换机的缓存就会过载。当交换机缓存过载时,若交换机开启了WERD功能,则会根据算法将接收到的数据包丢弃。

流控算法研究趋势 为解决数据中心内的拥塞问题,天翼云高性能网络团队的廖怡博士对业界几个主流算法进行了详细分析和总结,如下所示 这个算法不一般,控制拥塞有一手! 这个算法不一般,控制拥塞有一手! 这个算法不一般,控制拥塞有一手! 这个算法不一般,控制拥塞有一手!

基于上述对四类主流算法的分析,天翼云高性能网络团队还总结出业界CC算法研究趋势,即尽可能破除对PFC的依赖,降低排队时间,并且尽可能地简化交换机的配置,简化控制参数,维护较浅的队列深度,进而得到一个高速的、NO-PFC、NO-ECN、Zero Queuing的CC算法。

▍若不依赖交换机的配合,仅依靠网卡本身实现端到端的流控,则基本采用RTT作为拥塞感知的信号,实现拥塞控制; ▍若依赖交换机的配合,逐跳记录网络拥塞控制,则基本是基于ECN实现,或是在交换机上部署其他自研的算法与网卡侧配合。

天翼云自研拥塞控制算法特性 为了适应数据中心不同的流量场景,提供极致流畅的传输性能及超低时延、高可靠保障,天翼云提出了基于RDMA的天翼云自研拥塞控制算法,适用于天翼云自研整个RDMA网络,其支持特性主要如下: ①支持PFC和DCQCN基本流控算法; ②支持自研的PFC-Free的拥塞控制算法,无需交换机的配合,实现no-PFC、no-ECN特性; ③支持RoCEv2的选择重传功能; ④支持基于AI技术的流量模型训练,训练模型参数,自适应发送参数; ⑤支持长距、跨POD/AZ的RDMA拥塞控制; ⑥支持可编程CC。

天翼云自研拥塞控制算法概述 针对流控算法研究趋势,在天翼云的场景中,天翼云高性能网络团队定义了两种场景:基于自研智能网卡和基于自研智能网卡+自研交换机的拥塞控制算法。 ①基于自研智能网卡的拥塞控制算法 这个算法不一般,控制拥塞有一手!

▶ 天翼云自研拥塞控制算法基本思想——2段式端到端拥塞控制,用于RDMA的拥塞控制 ▍ 第1阶段:起始带宽探测,用于启动时初始发送窗口设置 ▍第2阶段:Receiver-driven的端到端拥塞避免方法• 接收侧检测本地的接收缓存状态,得到本地可用容量(Available Capacity,AC)并量化成Credit值;• 接收侧根据容量阈值触发拥塞控制,向发送端发送ACK报文,并在报文中携带当前节点可用的Credit;• 发送端根据接收到的ACK报文的RTT和Credit, 调节发送窗口的大小。

②基于自研智能网卡+自研交换机的拥塞控制算法 这个算法不一般,控制拥塞有一手!

▶ 天翼云自研拥塞控制算法基本思想的扩展 ▍ 自研紫金网卡和紫金桥交换机都具备主动拥塞通知能力,可向发送端主动发送网络拥塞状态信息,避免拥塞状态响应过慢,提高大规模、长距网络的拥塞控制能力; ▍ 紫金桥交换机和紫金网卡复用拥塞感知模型,统一报文格式,简化接收端建模,提高系统可扩展性; ▍ 网卡和交换机支持可编程特性,实现不同组网场景的灵活配置; ▍ 可扩展性强,适合大规模网络的增量部署。 结合目前各大厂商已经商用的数据中心流控算法来看,业界关注的重点是可部署性,研究的重点是尽可能破除对PFC的依赖,并且尽可能地简化交换机的配置、简化控制参数,得到高速、NO-PFC、NO-ECN的CC算法。

天翼云自研拥塞控制算法在不依赖交换机的配合场景中,仅依靠网卡本身便可利用RTT作为拥塞感知的信号,实现拥塞控制与端到端的流控,实现在中小规模网络的快速部署。同时,由于其不依赖交换机,天翼云自研拥塞控制算法在天翼云从现有数据中心升级到RDMA网络这一过程中起到了极大的加速作用。

在部署有自研交换机的场景中,天翼云自研拥塞控制算法则会基于ECN实现逐跳记录网络拥塞控制、逐跳感知、精细化控制,仅需增加有限的部署运维复杂度,即可获得大规模和长距离网络中更佳的拥塞控制能力。

随着深度学习和人工智能等新应用的兴起, 网络环境日趋复杂且动态变化,数据中心亟需提升性能以更快地处理更大规模的数据流。凭借端网融合的加速优势及天翼云自研拥塞控制算法,天翼云RDMA网络将会取得更加优异的表现,为建设具备低时延、高算力、高性能的新型数据中心提供支撑,为用户打造稳定高效的网络传输环境。

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型