HPCC: High Precision Congestion Control 论文解读

1,313 阅读8分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情

论文来源

这一篇论文是2019年sigcomm的论文,讨论了一种高精度拥塞控制算法HPCC(High Precision Congestion Control),选择这篇文章的原因是与小组之前的大作业选题相关,虽然说最终大作业的选题不是这个,但是个人觉得是比较有研究方向的。

论文研究背景:

数据中心两个关键趋势:

  1. 新的数据中心架构,如资源分解(resource disaggregation)和异构计算。在资源分解中,CPU需要与远程资源(如GPU、内存和磁盘)进行高速联网。根据最近的一项研究,资源分解需要3-5us的网络延迟和40-100Gbps的网络带宽才能保持良好的应用程序级性能。在异构计算环境中,不同的计算芯片,如CPU、FPGA和GPU,也需要高速互连,延迟越低越好。

  2. 新的应用,如高速I/O介质上的存储,如NVMe(非易失性存储器)和高速计算设备上的大规模机器学习训练,如GPU和ASIC。这些应用程序周期性地传输大容量数据,其性能瓶颈通常在网络中,因为它们的存储和计算速度非常快。

近年来,我们在数据中心部署了大规模网络,通过聚合以太网版本2(RoCEv2,Converged Ethernet Version 2)实现RDMA(远程直接内存访问),作为我们当前的硬件卸载解决方案。

为了解决协调延迟、带宽/利用率和稳定性的困难,我们认为良好的CC设计是关键,RDMA网络中最先进的CC机制,如DCQCN和TIMELY,有一些基本的局限性:

  1. 收敛慢。对于粗粒度反馈信号,如ECN或RTT,当前的CC方案不知道增加或减少多少发送速率。因此,他们使用启发式来猜测速率更新,并尝试迭代收敛到稳定的速率分布。这种迭代方法处理大规模拥塞事件的速度很慢,如案例1所示。

  2. 不可避免的数据包排队。DCQCN发送方利用一位ECN标记来判断拥塞风险,TIMELY发送方使用RTT的增加来检测拥塞。因此,发送方只有在队列建立后才开始降低流量。这些构建的队列会显著增加网络延迟,而这正是案例2中ML应用程序在开始时遇到的问题。

  3. 复杂的参数调整。当前CC算法用于调整发送速率的启发式算法有许多参数需要针对特定网络环境进行调整。例如,DCQCN需要设置15个参数。因此,运营商在日常RDMA网络操作中通常面临复杂而耗时的参数调整阶段,这大大增加了导致不稳定或性能差的不正确设置的风险。

DCQ一直在配置中存在着两队矛盾:吞吐量vs 稳定性;带宽 vs 延时。论文在测试平台中进行了仿真,详细论述了这两对矛盾。

  1. 吞吐量vs 稳定性

在一个DCQCN配置中,很难在不影响网络稳定性的情况下实现高吞吐量。在图(a)我们可以看到,在30%的网络负载之下,更小的(Ti)和更大的(Td)通过让发送发更加积极地检测利用宽带,减少了每条流的平均完成时间。但是也正如图b所示显然这样做也会造成更多了PFC PAUSE帧的出现。

clip_image002.jpg

  1. 带宽 vs 延时

为了始终保持较低的延迟,网络需要在缓冲区中稳定地维持较小的队列(这意味着ECN标记阈值较低),而如果ECN标记阈值较低,则发送方将过于保守以至于无法提高流量。

clip_image004.jpg

作者主要观点和要解决的问题

HPCC是一种用于大型高速网络的新型流控机制,它主要致力于实现以下三个目标:

1.超低延迟

2.高带宽

3.高稳定性

HPCC利用网络内遥测技术(INT)来获取精确的链路负载信息,并精确地控制流量。通过处理INT信息,HPCC可以快速利用空闲带宽,同时避免拥塞,并可以保持接近于零的网络内队列,实现超低延迟。

HPCC满足了我们在大规模高速网络中同时实现超低延迟、高带宽和高稳定性的目标。此外,HPCC还具有以下实用的基本特性:(i)部署容易:它只需要交换机中的标准INT功能(为了提高效率,需要一个简单的可选扩展),并且易于在NIC硬件中实现。(ii)公平:将效率与公平控制分开。它使用乘法递增和递减来快速收敛到每个链路上的适当速率,确保效率和稳定性,同时使用加法递增来实现长流的公平性。

论文关键技术分析与实验方法

如图所示,发送方发送的每个数据包将由接收方确认。在从发送器到接收器的数据包传播过程中,沿路径的每个交换机利用其INT功能来插入一些数据,这些数据报告了包括时间戳(ts),队列长度(qLen),发送字节数(tx字节)和链路带宽容量(B)的信息。

当接收方获取数据包时,它会将记录的所有元数据复制到ACK消息中发送回发送方。每次收到带有网络负载信息的ACK时,发送方决定如何调整其流速。

HPCC是一种基于窗口的CC方案,用于控制inflight字节数。inflight字节表示已发送但尚未在发送方确认的数据量。

clip_image006.jpg 与控制速率相比,控制inflight字节具有重要的优势。在没有拥塞的情况下,inflight字节和速率可通过公式inflight = rate*T互换,其中T是基本传播RTT。然而,控制inflight字节可以极大地提高拥塞期间对延迟反馈的容忍度。与在反馈到来之前连续发送数据包的纯速率CC方案相比,对inflight字节的控制确保了inflight字节数在限制范围内,使得发送端在达到限制时立即停止发送,无论反馈延迟多长时间。因此,整个网络非常稳定。

主要有以下几个关键特性:

  1. 发送方通过发送窗口限制inflight字节数

  2. 基于inflight字节的拥塞信号和控制律

  3. 反应迅速,无需过度反应

发送方CC算法的总体工作流程:

  1. 变量lastUpdateSeq用于记住用新的W^C发送的第一个数据包,并且传入ACK中的序列号应大于lastUpdateSeq,以触发W^C和W之间的新同步(第14-15和18-19行)

  2. 函数MEASUREINFLIGHT使用第5行的等式(2)估计归一化的inflight字节。

  3. 函数COMPUTEWIND结合了乘法增加/减少(MI/MD)和加法增加(AI),以平衡反应速度和公平性。

clip_image008.jpg

HPCC特性

  1. HPCC比以前的CC方案具有更少的参数和更简单的调参过程
  1. HPCC具有更快和更好的速率恢复。由于HPCC的反馈不依赖于队列,因此它的速度很快。
  1. HPCC具有更快、更好的拥塞避免功能。图9c和9d显示了HPCC和DCQCN如何应对Incast造成的拥塞。七个发送方开始同时向长时间运行的流的接收方发送流。HPCC只需来回一次就可以快速做出反应,因此队列很快就会耗尽。使用DCQCN时,队列会累积到550KB,原因有两个:(1)它等待ECN的队列累积,以及(2)它不限制inflight字节。
  1. HPCC具有较低的网络延迟。我们通过两个大象流饱和的链路不断发送mice流(每个1KB),并测量mice流延迟和缓冲区大小。图9e和9f显示HPCC保持接近零的队列,因此mice流的延迟接近5.4us(基准RTT)。DCQCN在ECN标记阈值周围保持一个固定队列,因此延迟始终高于35us。
  1. HPCC具有公平性。HPCC即使在短时间内也能提供良好的公平性。

clip_image010.jpg

  1. HPCC显著降低了短流的FCT
  1. HPCC的队列稳定地接近于零

未来发展方向

使用最先进的高速CC操作RDMA网络困难的生产经验。将HPCC作为下一代高速网络CC,以同时实现超低延迟、高带宽和稳定性。HPCC通过利用INT提供的精确负载信息实现快速收敛、小队列和公平性。它已通过商品可编程NIC和交换机实现,并显示出显著的收益。我们相信HPCC是未来超高速网络CC的开端。