HPCC: High Precision Congestion Control 论文阅读

摘要部分和简介

  1. CC(拥塞控制, 以下都用CC表示)的目标:低延迟,高带宽,网络稳定。但是现有的CC算法在大规模高速RDMA网络上实现这些目标具有潜在限制。
  2. 提出HPCC,利用网络内遥测(INT, in-Network teletry)来获得 (1) 精确的链路负载信息 (2) 精确控制交通
  3. 针对面临延迟INT信息以及对INT过度反应的挑战,HPCC可以快速收敛以利用限制带宽维护很短的网络队列。并且容易在硬件上进行部署。
  4. 相较于DCQCNTIMELY, HPCC大幅缩短了流完成时间。

简介

  • 三个目标:低时延,高带宽,网络稳定。

  • 基于RoCE2协议部署的RDMA网络仍然无法达到上述三个目标,主要是因为会遇到以下困难:

    • PFC(优先流控制风暴)。

      • incast 事件:分布式系统或数据中心网络中,多个发送者同时向一个接收者发送大量数据的情况。这种通信模式被称为many-to-one(多对一),在云计算应用中非常常见,尤其是在分布式存储和计算应用中,例如Hadoop、MapReduce和HDFS等。
      • PFC暂停帧:Priority Flow Control (PFC) 是一种基于优先级的流量控制机制,它允许网络设备在拥塞时只暂停特定优先级的流量。PFC的工作原理是将网络流量分为不同的优先级,每个优先级都有自己的队列。当某个优先级的队列长度超过预设的阈值时,下游设备会向上游设备发送一个 PFC Pause 帧,要求上游设备暂停发送该优先级的流量。这样,只有拥塞优先级的流量被暂停,而其他优先级的流量可以继续传输,从而避免了整个链路的流量被暂停,提高了网络的效率。
      • 在大流量的网络中,incast事件会导致长期的pfc风暴。因此我们需要调整拥塞算法来减少风险(限制和避免pfc暂停)。但是这样会导致链路利用率过低。
    • 长时间延迟。由于一个云端存储系统导致的入网队列过长,影响到了不对带宽有很大要求的应用,导致时延过长。
  • 需要一个好的拥塞算法以避免pfc和包重传以增加稳定性和减少损失。现有的DCQCN和TIMELY都具有以下三个问题:

    • 过低的收敛速度。
    • 无法避免的包队列导致时延增加。
    • 复杂的参数调整。
  • 提出了新的拥塞控制机制HPCC,利用INT中存在的链路负载信息来计算精确的流速率更新。

  • 相较于其他的算法,大部分情况下HPCC只需要更新一次。可以为高利用率快速调高速率或为了避免拥塞而快速降低速率。

  • 调整流速率来使得输入流量稍微小于链路容量防止链路队伍增加以及保持高链路利用率。

  • 参数很少,只有三个参数用于调整公平性和效率。

  • 防止盲从INT消息导致过度反应,选择性地结合每个ACK反应和RTT反应选择性地进行响应。

实验和动机

  • 说明在大型,高速RDMA网络中的CC算法的限制和困难。
  • 给出了下一代控制算法的要求和方向。

RDMA部署

  • 数据中心:Clos 拓扑,三层结构: TOR, AGG, 核心交换机。PoD(point of delivery), 拥有10个Tor交换机,相互与Agg交换机相连。每个服务器有两个上行链路,链接两个Tor。
  • 采用RoCEv2:DCQCN拥塞控制算法,集成在RDMA NIC供应商网卡中。
  • 恢复算法:go back N,回退重传。

目标

  • RDMA对资源具有高要求。
  • PFC有潜在的巨大且破坏性影响。
  • PFC具有抑制大量无辜发送端的情况。

当前RDMA CC算法权衡

  • DCQCN
  • 利用ECN来发现拥塞风险和快速反应。
  • 允许主机在边缘速率快速传输并且在瞬态拥塞后快速提升速率。
  • 平衡吞吐和稳定性。
  • 平衡带宽和延迟。

下一代高速网络拥塞控制算法目标

  1. 快速收敛。
  2. 近0队列。
  3. 少量参数。
  4. 流量公平。
  5. 部署建议。

设计

  • 依赖于交换机提供精确的负载信息,例如队列大小,累计传输接收流量等。
  • 直接控制流动字节的数量来避免反馈信号延迟而导致的利用率下降。
  • 结合RTT和ACK反应来实现快速反应和减少拥塞过度反应。

主要框架

  • 发送端驱动的控制拥塞网络框架。
  • 在包发送过程中,每一个交换机都会在包后增加INT信息(时间戳,队列长度,传输字节,链路容量等信息。)
  • 接收端收到信息后,将这些数据记录在ACK信息中发送回发送端。发送端从ACK中决定如何调整流量。

基于传输数据量控制

  • 基于窗的CC算法,控制传输中的人数据流字节数。在没有拥塞的情况下为\(inflight = rate \times T\).
  • 发送端通过发送窗口限制传输数据。初始传输\(W_{init}=B_{NIC}\times T\).
  • 使用数据包节流避免爆发性流量。节流速率R=W/T。W:窗口大小。T:基础RTT。
基于传输数据量的拥塞信号和控制方法
  • 与链路利用率直接相关。

  • 假设链路带宽B, 第i条经过的流有窗口大小\(W_i\),那么传输数据量即为\(I=\sum{W_i}\).

  • Case I: \(I < B\times T\)。 流的throughput则为\(\frac{W_i}{T}\)。所有流的总throughput小于链路带宽。

  • Case II: \(I \geqslant B\times T\),存在拥塞,形成了队列。可能是这条链路发生了拥塞,也有可能是在其他的地方出现(存在多个bottleneck)

  • 目标就是控制I满足情况一,并且仅可能地使得I最大。这样没有拥塞和没有队列。

  • 链路流量估计: \(I_j=队列长度+输出速率\times T\)

  • 输出速率计算:\(\frac{ack_1.txB-ack_0.txB}{ack_1.ts-ack_0.ts}\)。输出字节差与时间戳之差的比值。

  • 假设了相同的RTT,在数据中心中是合理的。

  • 存在瓶颈j时,\(I_j\)为下界。

  • 发送端要保证满足情况一。因此有\(I_j=\eta\times B_j\times T\),\(\eta\approx 95\%\)。这样对于链路j,可以以\(K_j=\frac{I_j}{\eta\times B_j\times T}=U_j/\eta\)来减小窗口大小,\(U_j\)时标准化的传输流量:

(2)

  • 发送端应该对最为拥堵的链路做出反应,\(W_{AI}\)用于保持公平性。

(3)

  • 分离了链路利用率控制和公平性控制,可以快速抓取自由带宽或避免拥塞。
  • 多瓶颈:多轮迭代解决拥塞问题。单瓶颈:一轮迭代解决问题。

快速反应且避免过度反应

从(2) 和 (3) HPCC的发送端可以对每一个ACK包做出反应,可以实现快速拥塞避免,但是会对描述相同包的ack重复反应。



上图中,P1看到了qLen=4,假设通过方程得到W1=W0/2, 那么对于P2,看到了qLen=4又看到了qLen=4,因此W2=W1/2=W0/4.导致过度反应。

  • 当出队的包看见一组全新的包时才进行更新。上例中,P7在发送端收到P1的ACK后才发出,这样其后面的队列与P1完全不同。因此仅在收到上一次窗口调整后立即发出的包的ACK后才进行窗口调整。缺点是每次RTT才调整一次窗口可能对于处理紧急情况(错误,incast)事件来讲太慢。

  • 结合ACK与RTT方法一起进行调整。当ACK包收到时,我们更新\(W_i^c=W_i\),用当前的窗口长度更新参考的窗口长度。然后通过递归的方式更新当前窗口长度:

\[W_i = \dfrac{W_i^c}{\max_j(U_j)/\eta}+W_{AI}
\]

这样在上图的情况下,收到P2的ACK时,参考窗口长度不会发生变化。因此我们不会进行更新,所以\(W(2)=W(1)=W(0)/2=W^c/2\).当P7的ACK到来时,再更新\(W^c\)。

算法框架如下:

三个参数\(\eta,\text{maxstage},W_{AI}\)

  • \(\eta\) 95%初始值,减少带宽损失。
  • \(maxStage\):平衡获得自由带宽的速度以及带宽的稳定性。
  • \(W_{AI}\)控制最大并发流在一个链路上的数量,可以维持近0队列以及收敛到公平的速度。\(W_{AI}=\frac{W_{init}\times(1-\eta)}{N}\)

HPCC 性质

  • 参数少。
  • 采用txRate,更好地衡量传输中的数据量,rxRate则没有具体的物理意义,并且与qlen具有重叠。所以XCP和RCP将会合并基于Qlen和rxRate的项来对参数进行微调。txRate可以反应rxRate在队列中一个RTT后的结果。
  • txRate收敛稳定,无震荡。

部署

INT在交换机上的填充

UDP报文后进行填充。

  1. nhop: 跳跃个数。
  2. pathID: 所有的路由器的ID的异或值,判断路径变化。
  3. 第一跳数据端:B:出口端口速率。TS:包离开出口端口时间戳,txBytes:累计流量。qLen:出口端口队列长度。
  • 硬件优化:除法优化。查找表的方式进行。
  • 支持许多并行流量。时钟引擎限制了并行流的数量,采用RR方式。采用了多个独立的引擎来调度多个独立的流量。

参考阅读:SIGCOMM】阿里巴巴新一代高速云网络拥塞控制协议HPCC

HPCC的更多相关文章

  1. HPCC 登录总结

    最近开始做NGS的分析,数据明显更大,在自己的机子上面做有些不现实了,需要登录高性能计算机. 1. 目录结构: home directory: /auto/rcf-40/USERNAME -- onl ...

  2. 分布式 并行软件平台 Dryad Hadoop HPCC

    1.为了 能够方便记忆, 总结一下. 2.  并行软件平台,不是 一个. (1)这个特别熟悉的 以 hadoop 为平台的 生态系统 (2)还有以 微软的 并行软件平台 生态系统 (3) 还有Lexi ...

  3. 中国计算机学会CCF推荐国际学术会议

    中国计算机学会推荐国际学术会议 (计算机系统与高性能计算) 一.A类 序号 会议简称 会议全称 出版社 网址 1 ASPLOS Architectural Support for Programmin ...

  4. Ext FileSystem Family、Ext2、Ext3

    catalog . 简介 . Ext2文件系统 . Ext3文件系统 . 小结 1. 简介 VFS虚拟文件系统接口和数据结构构成了一个框架,各个文件系统的实现都必须在框架内运转,但这并不要求每个文件系 ...

  5. lsof 解决无法删除文件夹问题

    今天在HPCC上面想要删除一个文件夹,结果说“Device or  resource busy". 于是google一下,发现这个是因为有程序正在运行,所以无法删除. 那么怎样解决? lso ...

  6. 用Storm轻松实时大数据分析【翻译】

    原文地址 简单易用,Storm让大数据分析变得轻而易举. 如今,公司在日常运作中经常会产生TB(terabytes)级的数据.数据来源包括从网络传感器捕获的,到Web,社交媒体,交易型业务数据,以及其 ...

  7. CCF推荐国际学术会议

    类别如下计算机系统与高性能计算,计算机网络,网络与信息安全,软件工程,系统软件与程序设计语言,数据库.数据挖掘与内容检索,计算机科学理论,计算机图形学与多媒体,人工智能与模式识别,人机交互与普适计算, ...

  8. change the walltime for currently running PBS job (qalter pbs)

    qalter jobid -l walltime=X e.g.qalter 377470.manager -l walltime=2222:00:00qalter: Unauthorized Requ ...

  9. [Hadoop 周边] Hadoop和大数据:60款顶级大数据开源工具(2015-10-27)【转】

    说到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱.弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,“100%的大公司”会采用Hado ...

  10. Hadoop和大数据:60款顶级大数据开源工具

    一.Hadoop相关工具 1. Hadoop Apache的Hadoop项目已几乎与大数据划上了等号.它不断壮大起来,已成为一个完整的生态系统,众多开源工具面向高度扩展的分布式计算. 支持的操作系统: ...

随机推荐

  1. react开发组件并发包到npm

    Toast组件 import ReactDomCli from 'react-dom/client'; import './style.css' import React from 'react'; ...

  2. Luogu P8754 [蓝桥杯 2021 省 AB2] 完全平方数 题解

    P8754 [蓝桥杯 2021 省 AB2] 完全平方数 首先,要使 \(nx\) 为完全平方数,需要知道完全平方数的一个性质:完全平方数的质因子的指数一定为偶数. 证明: 设 \(\sqrt{nx} ...

  3. leetcode 528 按权重随机选择

    简介 记住如何使用C++11函数的话会很简单. 参考链接 https://leetcode-cn.com/problems/random-pick-with-weight/solution/528-a ...

  4. java 中的访问限制

    简介 1)仅对本类可见--private 2) 对所有类可见--public 3) 对本包和所有子类可见--protected 4) 对本包可见--默认,不需要修饰符

  5. ARM GCC内联汇编

    ARM GCC内联汇编 通用的内嵌汇编模板 __asm volatile ( code :output operand list :input operand list :clobber list ) ...

  6. SciTech-BigDataAIML-LLM-Transformer Series-Self-Attention:由Dot-Product(向量点乘)说起

    本文公式中变量加粗表示该变量为向量或矩阵 Softmax后每个值\(\in [0, 1)\)且总和为0 经过Softmax的归一化后: 每个值是一\(\in [0, 1)\)的权重系数(可理解成一&q ...

  7. 连接语言大模型(LLM)服务进行对话

    1. 引言 最近开始接触AI大模型方向的工作,第一个实例就尝试一下连接大模型进行对话的实现. 2. 实现 2.1 openai模块 要实现这个功能很简单,直接翻各大模型平台的给的API案例一般都可以实 ...

  8. node实现图片四周填充透明区域

    前言 不知道你们有没有遇到这样的情况,写小程序的时候,文档里面推荐的 tabbar 图标是 81 * 81,但是实际效果图片又偏大,而且配置项也没有可调节的配置.那么怎么样解决这个问题呢?一般都是找 ...

  9. Win11正式版电脑回收站为什么显示灰色的问题

    一些雨林木风官网的win11正式版用户发现桌面上的回收站图标显示是灰色,点击无法进行,不能操作.这该如何解决呢?我们可以先尝试删除回收站图标,并在图标设置中添加相同的图标.此外,雨林木风小编再来分享其 ...

  10. 会话跟踪技术之Cookie、Session 和 Token三种技术对比

    Cookie.Session 和 Token 是解决 HTTP 无状态性的三种核心会话技术,各有其原理.优缺点和适用场景.以下综合分析: ​​1. Cookie​​ ​​原理​​ ​​存储位置​​:客 ...