介绍
作为一个重要的基础设施,数据中心支持越来越多的应用程序。简言之,这些应用程序,如网络搜索、数据挖掘和机器学习培训,需要高吞吐量和/或超低延迟(Zhang等人,2019年,Gao等人,2016年,Lu等人,2021年,Bai等人,2020年)。为了满足这些需求,拥塞控制已被证明是提高数据中心网络性能的关键(Li等人,2019年)。具体而言,拥塞控制使网络能够保持高链路利用率和低队列长度,以确保上层应用程序的高吞吐量和低延迟。此外,拥塞控制需要针对不同的流快速收敛到公平性,从而确保应用程序之间的公平性。
在过去的几十年中,已经提出了数十种拥塞控制机制(Li等人,2019年,Alizadeh等人,2010年,IEEE,2010年;Ruan等人,2017年;Katabi等人,2002年;Dukkipati,2008年;Zhu等人,2015年;Mittal等人,2015;Taheri等人,2020年;Xue等人,2020),并证明它们在实现吞吐量和延迟目标方面表现良好。通常,根据制定利率/窗口调整决策的实体,这些机制可分为两类:主机驱动和开关驱动(Taheri等人,2020年,Kushwaha和Gupta,2014年)。
大多数拥塞控制采用的主机驱动机制,如DCQCN(Zhu等人,2015)、TIMELY(Mittal等人,2015年)、HPCC(Li等人,2019年)和PowerTCP(Addanki等人,2022年),都认为主机根据从网络结构接收到的拥塞信号调整发送速率/窗口。具体来说,主机根据“加法-增量-乘法-减法”(AIMD)或一些类似的方法调整每个流的速率/窗口,以实现高吞吐量、低延迟和公平性。然而,我们发现主机驱动的机制很难快速收敛到公平性,在某些情况下更难使流公平共享带宽,例如不同的流具有不同的往返时间(RTT)。
我们调查的根本原因是主机调整发送速率/窗口分配地具体来说,在做出决策时,主机以盲目的启发式方式作出反应,而不知道其他主机的流量。因此,不同的流量需要很长时间才能达到公平的利率点,从而影响其中一些流量的性能。
为了应对这些挑战,我们发现开关驱动机制是一种引人注目的替代方案。在开关驱动机制中,流量调整决策是在开关处作出的。换言之,交换机直接根据拥塞情况计算适当的速率,并明确通知主机。由于速率计算是在交换机上进行的,因此通过同一交换机的流量可以轻松实现公平性。之后,交换机可以以更积极的方式调整速率以快速收敛,从而占用可用带宽或及时消除队列。
有几种开关驱动的拥塞控制机制,如XCP(Katabi等人,2002)、RCP(Dukkipati,2008)和RoCC(Taheri等人,2020)。它们可以提供良好的性能,但我们发现它们面临一些部署和设计挑战。首先,XCP和RCP要求交换机执行复杂的计算,包括浮点运算和乘除运算,即使在现代可编程交换机上也很难实现(Bossart等人,2014年,Anon,2020年,Hauser等人,2022年)。RoCC默认为队列中当前的流维护一个流表,这相当消耗资源。另一方面,现有的开关驱动机构使用经典的比例积分(PI)控制器(Franklin et al.,2002)定期计算速率,该控制器有时反应缓慢,调整参数可能很耗时。此外,RoCC要求交换机保持固定长度的队列,这将增加分组排队延迟,并损害短流的性能。
受上述见解的启发,本文提出了数据中心网络的RApidly Convergeng Explicit拥塞控制(RaceCC)。作为一种开关驱动的CC机制,RaceCC允许流量在没有过流状态(例如维护流量表)的情况下快速达到公平速率。RaceCC交换机以简单直观的方式计算流量,只需要整数加减运算、位移位运算和少量参数,预计这些参数很容易部署在现代可编程交换机上。
我们的贡献可以总结如下:
- •
我们分析了现有的主机驱动和交换机驱动拥塞控制的局限性,它们要么难以实现公平性,要么面临一些部署和设计挑战。
- •
我们设计了RaceCC,这是一种易于实现且直观的开关驱动拥塞控制,它可以快速实现公平性并解决现有CC机制所面临的挑战。同时,RaceCC可以通过针对短队列的Additive-Decrease(AD)过程实现近零队列,并通过延迟测量实现精确更新。
- •
我们从理论上分析了RaceCC中使用的速率调整算法的稳定性,并证明了即使在紧急情况下,RaceCC也是高度可扩展和稳定的。
- •
我们使用微观基准和大规模模拟来评估RaceCC,并将其与现有的主机驱动和开关驱动CC机制进行比较。评估结果表明,RaceCC实现了高吞吐量、低延迟、快速收敛到公平性和20%与DCQCN、TIMELY、HPCC、PowerTCP、RCP和RoCC相比,平均FCT低57%。
本文的其余部分结构如下。在第二节中,我们对相关工作进行了总结。第3节描述了我们设计的动机。在第4节“RaceCC设计”和第5节“理论分析”中,我们分别介绍了RaceCC的设计细节及其理论分析。评估结果见第6节。在第7节中,我们提供了关于RaceCC的讨论,最后,在第8节中,我们总结了本文。