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

news2024/11/16 9:50:09

数字时代下,远程办公、线上协同成为刚需,直播带货等业务模式盛行,数据流量爆炸式增长,低时延、高流畅的网络传输诉求给数据中心的处理能力带来了极大挑战。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网络将会取得更加优异的表现,为建设具备低时延、高算力、高性能的新型数据中心提供支撑,为用户打造稳定高效的网络传输环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML期末学生大作业-节日网页作业html+css+javascript

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

详细总结快慢指针的在链表中的常见题型

常见快慢指针题型1.找出链表中间结点2.找到倒数第K个结点3.判断环形链表4.找到环形链表的入口(进阶)5.相交链表1.找出链表中间结点 双指针进阶解法 1.定义两个指针,一个快指针,一个慢指针。 2.快指着一次走两步,慢指针…

基于冲突搜索的多机器人路径规划(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 随着自动化物流系统的发展,移动机器人作为运输系统的关键工具,各方面的技术得到了快速的发展。多移动机器人路径规划是机器人导…

什么是单臂路由技术?

使用vlan trunk可以在同一交换机上划分vlan,从而相同vlan的主机可以通信,不同vlan不能通信,如果连接不同vlan的主机想要通信,怎么办? 不同vlan是属于不同广播域的,配置的是不同的IP网段,针对不…

Notepad++官网地址及使用十六进制查看文件的详细教程

目录 一、概述 二、Notepad官网地址 三、Notepad查看十六进制教程  3.1 在线安装HexEditor插件  3.2 手动安装HexEditor插件 一、概述 Notepad是一个开源的源代码编辑器和记事本替代品,支持多种编程语言和自然语言。在MS Windows环境下运行,它的使用受…

在线数据图表制作-FineReport文本控件

1. 概述 1.1 版本 报表服务器版本 App 版本 功能变更 11.0 -- -- 11.0.2 11.0.54 App支持文本控件 NFC 读卡输入 1.2 应用场景 1.2.1 填报控件 填报报表中可以通过该控件输入文本信息,录入填报的数据,如下图所示: 1.2.2 参数控件 …

51单片机APP GSM短信老人跌倒定位温度异常报警检测GPS地图

实践制作DIY- GC0088-跌倒定位温度异常报警 一、功能说明: 基于STM32单片机设计-跌倒定位温度异常报警 功能介绍: STC15W4K48S4(或者STM32F103CxT6)系列最小系统板OLED显示器SIM800 GSM短信模块1个DS18B20温度测量模块蜂鸣器AD…

我的世界杯 - 诸神黄昏之战

话说长这么大还是头一回主动的去看世界杯比赛... 小时候只是我爷爷他们喜欢看 【CCTV-5】 各种球的比赛,而我我对此毫无兴趣可言,每天只要有时间就沉醉在属于我的 【少儿频道】,喜羊羊、葫芦娃、红猫蓝兔、小娜扎... 而这次可能是因为朋友圈的…

Spring【Bean的作用域与生命周期】

Spring【Bean的作用域与生命周期】🍎一.Bean作用域问题🍒1.1 被修改的 Bean 案例🍒1.2 原因分析🍎二.作⽤域定义🍒2.1Bean 的 6 种作⽤域🍉 2.1.1singleton(单例作⽤域)🍉 2.1.2prototype(原型作…

微服务守护神-Sentinel-概念

引言 书接上篇 微服务应对雪崩的容错方案 ,大概知道微服务容错方案可以从隔离、超时、限流、熔断、降级这几方面入手。好了,理论了解了,那代码落地方案?这是后本篇的主角要登陆场:Sentinel,微服务的守护神…

Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖

Xylan-MAL|木聚糖-马来酰亚胺|木聚糖-聚乙二醇-马来酰亚胺|马来酰亚胺-PEG-木聚糖 中文名称:木聚糖-马来酰亚胺 英文名称:Xylan-MAL 别称:马来酰亚胺修饰木聚糖,马来酰亚胺-木聚糖 存储条件:-20C,避光&…

编程初学者应该先学C++、Java还是Python?

语言推荐: 第一大类语言包括Java、C、Python和C. 这类语言都是非常通用的语言,它们并不局限于特定的编程平台或用途。(无疑问,你应该熟悉这四种语言。) 第二大类语言包括Java、C#、PHP和Swift。 Java 和PHP是主要的Web开发语言。C# 是微软的编程语言&…

总结《你不知道的JavaScript》三卷小记

先讲一些废话 三本小黄书,工作日都抽出半小时来看看,三本书加来一共700多页的样子。我拖拖延延看了三个月,终于看完了。然后现在抽出时间随便写点,我只是挑一些自己想总结的,给自己一个名词概念,好了废话就…

FreeRTOS移植

FreeRTOS移植一、获取FreeRTOS源码1.1 官网下载1.2 源码路径二、移植2.1 工程内新建分支2.2 分支内添加文件FreeRTOS_COREFreeRTOS_PORTABLE添加完成2.3 添加 FreeRTOSConfig.h 文件2.4 添加 FreeRTOS 头文件路径三、举例3.1 包含头文件3.2 创建任务四、FreeRTOSConfig.h 附录一…

Redis——(7)redis作为mybatis缓存整合二级缓存的整合

1.作为mybits的缓存整合 1)用户第一次访问的时候获取数据库的值,再次访问时直接从缓存中获取数据 2)设置缓存过期时间 3)项目8080端口是对外端口(向外部暴露的端口),区别于内部进程号,查内部端口用ps -ef|…

分布式环境下Spring Session Redis底层原理

1 自动装配 public class SessionAutoConfiguration {// SessionRepositoryFilterConfiguration用来配置核心的过滤器// 3 核心过滤器Configuration(proxyBeanMethods false)ConditionalOnWebApplication(type Type.SERVLET)Import({ ServletSessionRepositoryValidator.clas…

什么是代码签名证书?

使用代码签名证书,您可以保证签名者的身份和软件的完整性,这可以防止在下载和安装软件时出现警告。 代码签名证书是软件开发人员用来签署其软件、应用程序和驱动程序代码的数字证书。它使用公私密钥基础设施(PKI)将实体绑定到公钥和私钥。 申请代码签名…

SuperKnob超级旋钮

SuperKnob超级旋钮 2022年12月5日,今天总结下几个月前搞得小项目,好久没有写文总结了,有多少人不再写博客了呢?转眼疫情已三年,生活节奏太快了,认识的很多大佬他们的博客也不再更新了,都在努力…

Vue3 组件,一点也不难

Vue3 组件,一点也不难1.简介2.一个简单的 Vue 组件的实例3.局部组件4.Prop5.动态 Prop1.简介 组件是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意…

jmeter压测mysql(保姆级教程)

准备工作(下载mysql-connector): 打开mysql官网:MySQL 找到mysql connectors,选择操作系统独立版本,将下载jar包导入到jmeter的lib目录下。 参考文档:https://www.jb51.net/article/190860.h…