数据中心交换机 buffer 需求分析白皮书目录1引言 (3)1.1DC 的网络性能要求 (3)1.2国内OTT 厂商对设备Buffer 的困惑 (4)1.3白皮书的目标 (4)2Buffer 需求的经典理论 (5)2.11BDP 理论 (5)2.2Nick Mckeown 理论 (6)2.3经典理论的适用性 (6)3基于尾丢弃的buffer 需求 (9)3.1丢包的影响 (9)3.1.2丢包对带宽利用率的影响 (9)3.1.3丢包对FCT 的影响 (12)3.2大buffer 的作用 (13)3.2.1吸收突发,减少丢包,保护吞吐 (13)3.2.2带宽分配均匀 (14)3.2.3优化FCT (15)3.3DC 内哪需要大buffer (15)3.4需要多大buffer (17)3.5带宽升级后,buffer 需求的变化 (19)3.6 小结 (19)4基于ECN 的buffer 需求 (21)4.1ECN 的作用 (21)4.2ECN 水线设置 (23)4.3基于ECN 的buffer 需要多大 (24)5基于大小流区分调度的buffer 需求 (27)5.1大小流差异化调度 (27)5.2大小流差异化调度如何实现大buffer 相当甚至更优的性能 (27)5.3基于大小流差异化调度的buffer 需要多大 (28)6 总结 (28)7 缩略语 (29)1 引言1.1DC 的网络性能要求近几年,大数据、云计算、社交网络、物联网等应用和服务高速发展,DC 已经成为承载这些服务的重要基础设施。
随着信息化水平的提高,移动互联网产业快速发展,尤其是视频、网络直播、游戏等行业的爆发式增长,用户对访问体验提出了更高的要求;云计算技术的广泛应用带动数据存储规模、计算能力以及网络流量的大幅增加;此外,物联网、智慧城市以及人工智能的发展也都对DC提出了更多的诉求。
为了满足不断增长的网络需求,DC 内的网络性能要求主要体现在:•低时延。
随着深度学习、分布式计算等技术的兴起和发展,人工智能、高性能计算等时延敏感型业务增长迅速。
计算机硬件的快速发展,使得这些应用的瓶颈已经逐渐由计算能力转移到网络,低时延已经成为影响集群计算性能的关键指标。
因此,时延敏感型应用对DC 网络时延提出了更高的要求。
目前DC 内,端到端5-10 微秒时延已经成为主流的目标要求。
•高带宽高吞吐。
数据时代的到来,产生了海量的数据,如图1-1。
基于数据的应用(如图像识别)的推广,使得网络数据呈爆发式增长,小带宽已经无法满足应用对传输速率的需求。
部分应用场景下,带宽成为制约用户体验的瓶颈。
高带宽高吞吐对于提升大数据量传输的应用性能有着至关重要的影响。
为了应对大数据量传输的应用需求,目前,百度、腾讯、阿里巴巴等互联网企业的DC 都已经全面部署100GE网络,阿里巴巴更是规划2020 年部署400GE 网络。
图1-1 数据中心内存储的实际数据数据来源:中国IDC 圈•极低丢包率。
丢包需要重传,甚至RTO 超时,造成带宽的浪费。
目前,不少DC,通过使能PFC(Priority-based Flow Control)实现无损网络。
1.2国内OTT 厂商对设备Buffer 的困惑为了满足应用的发展对DC 网络性能提出的更高要求,国内OTT 厂商除了上层的应用优化外,希望对DC网络架构以及交换设备做进一步的优化,以提升网络整体性能。
DC 内的设备buffer 成为关注的重点。
经过与国内OTT 厂商交流后发现,OTT 厂商对设备buffer 存在两点主要困惑:•设备buffer 需要多大。
设备buffer 大小一直备受关注。
大buffer 能吸收突发,减少丢包,但同时也会带来排队时延的增加;小buffer 能保证排队时延较低,但却无法吸收突发,影响链路的带宽利用率。
OTT 厂商都迫切想知道,在目标场景下,多大buffer的设备能满足业务需求。
•使能ECN 后,ECN 的水线该设多大。
ECN 使设备能尽早的反馈拥塞信息,避免排队时延过长,同时减少丢包,但是ECN 的水线设置对网络性能影响较大。
如果水线过低,则链路会欠吞吐;水线过高,则会造成时延增加,同时无法体现ECN 尽早反馈拥塞的优势。
因此,OTT 厂商迫切需要ECN 水线设置的经验指导。
1.3白皮书的目标在本白皮书中,我们梳理了目前业界关于DC 交换机buffer 的观点和结论,结合本身对buffer 的认识理解,通过理论和仿真分析,试图回答关于设备buffer 的两个基本问题:设备buffer 需要多大以及ECN 水线该设多大。
考虑到,目前DC 现网中的主流场景包括:基于尾丢弃的TCP 拥塞控制网络,基于ECN 的TCP 拥塞控制网络,以及使能大小流差异化调度的TCP 拥塞控制网络。
因此,本白皮书分别在三个DCN(Data Center Network)场景下分析交换机buffer 需求的相关问题,期望对交换机buffer 的设计以及使用提供经验性的指导。
2 Buffer 需求的经典理论2.11BDP 理论关于网络设备buffer 大小需求,最早的经典理论是Villamizar 和Song 在1994 年提出的1BDP(Bandwidth Delay Product)理论,也称为Rule-of-Thumb。
这里的BDP=C×RTT ,其中 C 为瓶颈链路的带宽,RTT 为链路的往返传输时延。
1BDP 理论做出如下假设:(1)传输层协议为基于丢包的TCP,丢包速率减半;(2)在链路中仅有一条长流;(3)网络只有一跳,TCP 流对buffer 的占用如图2-1 所示;(4)buffer 需求的目标是保证跑满链路带宽。
图2-1 一条TCP 流的buffer 占用在t1 时刻,TCP 的发送端感知到丢包,此时TCP 的拥塞窗口CWND 从Wmax 减小到Wmax/2,而TCP 流的在途数据量inflight=Wmax。
由于在途数据量在传输管道中或者在buffer 队列,因此inflight=BDP+B ,其中 B 为设备buffer 大小,于是可以得到Wmax=BDP+B。
在t2 时刻,buffer 队列排空,inflight≤CWND,发送端以Wmax/2 的窗口发送数据。
此时,数据报文无排队时延,数据包的RTT= 链路的往返传输时延,TCP 流的发送速率=Wmax/2/RTT,为了保证跑满链路带宽,TCP流的发送速率应该等于链路的瓶颈带宽C。
因此,C=Wmax/2/RTT,得到Wmax=2C×RTT 。
综合Wmax=BDP+B=2C×RTT,得到B=BDP=C×RTT。
也就是说,单流情形,设备1BDP的buffer 能保证出端口跑满链路带宽。
考虑到在不止一跳的网络拓扑中,当前设备buffer 排空的t2 时刻,流的RTT 包含除当前设备buffer 以外的其他设备的buffer 排队时延。
因此,要保证不欠吞吐的1BDP 设置中的时延需考虑队列时延。
n 2.2 Nick Mckeown 理论斯坦福大学的 Nick Mckeown 教授在 1BDP 理论的基础上,分别考虑多流同步和异步的情形,进一步扩展了 buffer 需求的理论。
(1) 多流同步。
流的同步指的是不同的流的发送窗口的大小变化锯齿曲线相位同步,即 发送窗口同时增大或减小。
通常,多流同时发起、多流在设备处同时丢包以及多流之间 接近的 RTT 都会增加多流的同步性。
对于在同一瓶颈链路传输的同步多流,在设备处叠 加后的发送窗口的大小变化曲线,就是多条锯齿曲线的同相叠加,与一条流的锯齿曲线类似。
因此,应用 1BDP 理论相同的推导逻辑,可以得到同步多流情形,要保证跑满链 路带宽,设备所需的 buffer 仍然为 1BDP 。
(2) 多流异步。
流不同步时,多流的发送窗口值形成的锯齿曲线会相互错开。
如果流数 足够多,假定各流的窗口值独立同分布,则根据中心极限定理,多流的窗口叠加后,形 成的总的窗口值服从正态分布。
此时,多流叠加的窗口值的变化与单流窗口值的变化存 在 n 的关系,其中的 n 为大流的条流。
因此,多流异步时,为了保障不欠吞吐,设备 所需的 buffer 为 BDP/ 。
2.3 经典理论的适用性经典理论都是针对广域网中的骨干网路由器的 buffer 需求提出。
相比于广域网,数据中 心的跳数更少,时延更短,业务的流量模型也不同,经典理论在 DCN 是否适用?BDP 理论在多流时是否依然适用?考虑到 buffer 溢出丢包后发送端需要 3 个冗余 ACK 才将窗口降半,假设多流的 buffer 占用曲线如图 2-2 所示。
假设 DCN 中共有 n 条流, 流 i 的窗口值大小为 W i ,流 i 的 RTT 为 RTT i 。
图 2-2 多 TCP 流的 buffer 占用在 t 1 时刻,buffer 溢出丢包,但由于源端无法立刻感知到丢包,收到 ACK 后,仍然会继续增大窗口值,继续发送数据包,导致 buffer 持续占满。
经过 3RTT 后,在 t 2 时刻,各流收到 3 冗余 ACK 后感知到丢包,此时多流的窗口都从 W i 降低到 W i /2。
在 t 2 时刻降窗口之前,各流的窗口值之和 ∑nWi 为各流的总在途数据报文,而这些报文或者在管道 中,或者在 buffer 队列中,因此 ∑n W i =BDP+B 。
在(t 2,t 3)期间,由于流的窗口值小于在途的报文数,于是各流停止发送报文,buffer 队列排空。
n n i在 t 3 时刻,各流已收到足够的 ACK ,使得在途数据报文数≤ ∑n W i / 2 ,于是各流开始 恢复数据发送。
W 要/保2证此时链路不欠吞吐,则各流的发送速率之和应该为瓶颈链路带宽 C 。
因此,∑ i = C 。
假设 RTT =max{RTT },则 C = ∑ W i / 2 ≥ ∑ W / 2 , n RTT maxi n RTT i n RTT max因 此 , 有 ∑ W i ≤ 2C ⨯ R T m T a 。
x 将 ∑W i =BDP+B 代 入 , 可 得 B ≤ C ⨯ R T m T a =x B D m P a 。
x 所以,buffer 为 1BDP 可以保证链路打满带宽,即 1BDP 的理论在数据中心依然适用。
BDP/ 理论成立需要满足两个基本假设前提:多流窗口值异步以及多流窗口值独立。
如果网络中的多流的窗口值不满足异步性和相互独立性,则多流叠加后的窗口值和单流窗口值之间的关系将失效。
在 DCN 中,尤其是大数据、图像识别等应用为主的 DCN 中,MapReduce 以及参数服务器等这类分区/聚合(Partion/Aggregate)的 incast 通信模式非 常常见。