这个算法不一般,控制拥塞有一手!
数字时代下,远程办公、线上协同成为刚需,直播带货等业务模式盛行,数据流量爆炸式增长,低时延、高流畅的网络传输诉求给数据中心的处理能力带来了极大挑战。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 网络将会取得更加优异的表现,为建设具备低时延、高算力、高性能的新型数据中心提供支撑,为用户打造稳定高效的网络传输环境。
版权声明: 本文为 InfoQ 作者【天翼云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/c2b6088c4e2084f5d9b98bedd】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论