数据中心高性能网络拥塞检测技术详解
数据中心高性能网络拥塞检测技术详解
随着云计算技术的迅猛发展,高性能网络在分布式存储、内存池化、键值存储和智算中心等场景中的应用日益广泛。然而,高性能网络在带来高吞吐量和低延迟的同时,也面临着拥塞问题的挑战。本文将深入探讨数据中心高性能网络拥塞检测技术,从应用场景、拥塞管理与控制技术体系,到具体的拥塞检测方法,为读者提供全面的技术解析。
应用背景与现状
1. 分布式储存场景
分布式存储是云计算中的一个核心应用。各家云厂商都会提供高达百万输入/输出操作每秒(I0PS)的高性能存储实例,旨在满足对性能要求极高的应用场景。
2. 内存池化场景
现有的数据中心是通过服务器构建的,每个服务器紧密集成了计算任务所需的各种资源(CPU、内存、存储)。虽然这种以服务器为中心的架构已经持续使用了几十年,但最近的研究表明,未来即将出现一种向分解式数据中心(Disaggregated Datacenter,DDC)转变的范式。其中,每种资源类型都作为独立的资源池进行构建而网络结构则用于连接这些资源池。资源池化的一个关键的促进(或阻碍)因素将是网络。因为将CPU 与内存、磁盘分解开来,原本需要在服务器内部进行的资源间通信,而现在必须通过网络进行。因此,为了支持良好的应用级性能,网络结构必须提供低延迟的通信以应对这种负载更大的情况。因此,RDMA高性能网络作为一个解决方案在内存池化的场景已经有广泛的研究。RDMA有效地提升了内存池化数据中心的效率尽管没有完全解决资源池化场景的网络互连问题,但其仍然是未来分布式数据中心的一个有力的网络技术方案。
3. 键值存储场景
键值存储( Key-Value Store)是一种数据存储方法, 它以键值对( Key-Value Pair)的形式存储和访问数据。与传统的关系型数据库相比, 键值存储通常更加简单、 灵活、 高效, 并且可以处理更大规模的数据。键值存储不要求数据具有固定的结构和模式, 因此可以轻松地存储和检索各种类型的数据。键值存储还支持高度可扩展性和分布式部署, 可以轻松地在多个节点上进行水平扩展和数据复制以提高性能和可靠性。
4. 智能算力场景
近年来,大型语言模型如GPT等在自然语言处理任务上的强大能力引起了广泛关注。这些模型通过预训练在海量文本数据上获取语言知识,然后进行微调应用于下游任务。大模型以极大的模型尺寸、大量数据和计算资源进行训练。其一系列成果显示了大模型具备了通过无监督学习获取语言理解能力的潜力。
高性能网络拥堵问题与挑战
高性能网络已经成为云计算领域应用广泛核心基础设施之一.然而,RDMA网络中出现拥塞问题将会大幅降低网络的吞和延迟性能,这也成为了限制RDMA网络应用规模的重要因素。当网络中的数据流量超过了网络链路的处理能力或带宽限制或者当多个节点同时进行 RDMA 通信时,网络链路无法及时处理或传输所有的数据包,就会发生拥塞,拥塞一方面会导致交换机的缓存队列增大,数据包传输的延迟等比例的延长,使网络服务质量下降;另一方面,交换机中数据包堆积,会触发PFC机制,以保证RoCE网络的无损特性,这导致网络中会出现一系列相应的风暴、死锁等问题。这也一定程度上限制了RDMA网络在以太网环境的部署规模和网络性能。因此,近年来在RDMA高性能网络方向聚焦拥塞问题,产生了大量的前沿研究和工程实践工作。
拥塞管理与控制技术体系
为了缓解高性能网络中的拥塞问题, RoCE 高性能网络协议已经构建了多层的拥塞管理和控制技术体系。这一体系中, 细分主要包含拥塞控制、 负载均衡、 链路控制、 流量调度等。形成了从用户层到链路层的多层次拥塞管理和控制体系。其中, 拥塞控制协议、 链路控制的响应快、 周期短, 通过调整流的发送速率实现拥塞的避免, 且主流方案通过闭环控制技术实现,因此归类为拥塞控制技术;负载均衡、 流量调度, 往往通过管理的方式, 对数据进行调度分流, 通过更高效的利用网络拓扑资源实现拥塞的避免, 因此归类为拥塞管理技术。
1. 拥塞控制技术
拥塞控制, 顾名思义, 可知其在网络拥塞问题处理中的核心位置。拥塞控制是为了防止网络过载而采取的一种流量调节机制。当网络拥塞时, 路由器队列堆积,丢包和延迟增加。拥塞控制算法(如TCP的滑动窗口)可以通过监控网络状况来动态调整发送方的发送速率。比如, 在拥塞开始时降低发送速率, 拥塞消除后逐渐增加发送速率。这种闭环反馈机制可以使网络稳定运行在最优状态, 最大化网络的吞吐量, 是保证网络顺畅运行的重要机制。
2. 链路控制技术
链路控制技术主要通过速率限制和流量控制来实现, 可以动态调整RDMA网络中的数据发送速率, 避免拥塞的产生,从而提高网络效率。链路控制对于构建可靠、 低延迟的RDMA网络至关重要。相比于L4传输层的拥塞控制协议, 链路控制协议工作在L2链路层。相应的,链路控制技术响应的时间相比拥塞控制更加短, 速率的调节也更加及时。对应的拥塞检测机制也明显有别于 L4 层面,要求响应的速度更快。链路层控制中, 往往并不获取网络内的拥塞程度信息,而是用事件触发产生的报文进行进行控制。因此, 链路控制中的拥塞检测与控制结合得更紧密, 往往就是一组报文的交互过程, 而非细化到速率的计算与调整。
a. 信用
基于信用的链路控制可以显著提高网络的吞吐量和性能。它可以避免数据包的丢失和重传, 并减少网络拥塞和延迟。此外, 由于每个端口都有自己的缓冲区, 它也可以实现流量隔离和保障, 从而提高网络的可靠性和安全性。
通常, 信用机制这种传输控制与 TCP 中的滑动窗口有相似之处,两者都是收发两端协调控制发送数据量的链路层流量控制机制。相比滑动窗口使用 ACK 报文确认的方式, 信用机制为了更高的性能,设计了特殊信用帧来反馈未使用的信用量。
b. PFC
优先级流控制技术,也被称为基于优先级的流控制(PFC),是一种在IEEE 802.1Qbb标准文档中定义的技术,它是对传统流控的暂停机制的一种增强。这种技术的主要目标是为局域网(LAN)和存储区域网络(SAN)技术启用统一的802.3以太网媒体接口或结构的流控制,以消除由于网络链路拥塞而导致的数据包丢失。在优先级流控制中,流量被按照IEEE 802.1Q协议分为8个优先级。每个优先级都各自维护一个队列,并且每个队列都实现独立的PAUSE机制。这意味着,当下游路由器的输入端口队列长度超过预先设定的门限(例如XOFF)时,该路由器会向上游发送PAUSE帧,通知其停止发送特定优先级的流量。相反,当入端口队列长度低于另一设定的门限(例如XON)时,下游路由器会向上游发送RESUME帧,通知其重新开始发送该优先级的流量。这种设计的主要优点是,它允许网络在出现拥塞时,对不同的流量优先级进行不同的处理。在传统的流控机制中,一旦链路出现拥塞,所有的流量都会被阻止。然而,在优先级流控制中,可以在一条以太网链路上创建多个虚拟通道,并为每个虚拟通道指定一个IEEE 802.1P优先等级。当某个优先级的流量出现拥塞时,可以单独暂停和重启该优先级的流量,同时允许其他优先级的流量无中断地通过。然而,优先级流控制也存在一些问题。例如,当某一端口停止发送时,所有需要经过该端口的数据都会被阻塞,这可能会导致队头阻塞、拥塞扩散以及死锁的问题。因此,在使用优先级流控制时,需要谨慎地设计和管理网络,以避免这些问题。
3. 负载均衡技术
负载均衡技术通过在网络中多个服务器或链路间分配流量, 实现网络流量的均衡分配, 防止热点的产生。负载均衡机制的核心目标在于利用好网络中冗余的传输路径, 使得流量均匀分布。负载均衡技术对于网络拥塞起到了有效的缓解作用, 从拥塞的源头上, 降低了拥塞发生的概率。本节按业内通用的分类, 按流级别、 包级别、flowlet级别对常见的典型负载均衡机制进行了分类总结。
流级别
ECMP全称等价多路径( Equal-cost multi-path), 它是一种基于流的负载均衡路由策略。当路由器发现同一目的地址存在多条等价路径时, 路由器会依据相应算法将不同流量分布到不同的链路上, 以增进网络带宽利用率。
包级别
随机包喷洒( Random Packet Spraying, RPS) 是一种基于包级别的负载均衡策略。当路由器发现有多条等价路径指向同一目的地址时, RPS 会将数据包以单个包为单位分散到这些路径上。与ECMP不同, RPS 以数据包为单位进行操作, 而ECMP则是以流为单位进行操作。RPS将同一流中的不同数据包转发到不同的等价路径上。
Flowlet级别
CONGA基于数据中心网络的特点将流进一 步细分为间隔粒度在微秒级别的小流(Flowlets), 负载均衡也针对每一个Flowlet的第一个包, 之后每个Flowlet使用相同的链路。上行链路交换机搜集链路拥塞状况并交给收端交换机, 保存一个来自各叶节点的拥塞状况, 并反馈给源端交换机。CONGA通过负载均衡提升了数据中心网络传输性能进而提高吞吐量, 但CONGA仍然需要网络负载与实际容量相匹配。当实际容量无法满足时,CONGA的性能无法得到保证。
4. 流量调度技术
流量调度技术不同于前述的几项技术, 它更多的是在给特定的数据流量进行优先级调配, 解决全局的网络服务质量问题。数据中心中的流量调度技术主要通过软件定义网络(SDN)来实现。SDN控制器整合拓扑发现模块和流量监控模块获取全网视图, 再根据业务优先级、 网络状态、 服务器负载状态等, 用开放流协议(OpenFlow)下发流表规则到数据平面, 协调网络设备实现动态的流量调度。这可以按需分配网络资源, 绕过拥塞链路, 根据业务需求分割带宽,还可以按照负载将流量导向闲置服务器。流量调度提高了网络利用率, 保证了关键业务的质量。
基于规则的调度技术
在基于规则的调度中,首先需要确定一套调度规则。这些规则可能涉及多种因素,例如流量的来源、目的地、优先级、带宽需求等。根据这些规则,调度系统可以对流量进行分类和优先级划分,从而决定如何分配网络资源。
具体来说,基于规则的调度技术可能采用以下几种策略:
优先级调度:根据流量的优先级进行调度。高优先级的流量将被优先处理,确保其得到足够的带宽和延迟保障。这种策略适用于需要确保关键业务或实时应用的服务质量(QoS)的场景。
负载均衡调度:通过分散流量到多个服务器或链路上,以实现资源的均衡利用。这种策略可以减少单点故障的风险,提高系统的可靠性和性能。
流量整形:根据预设的规则对流量进行整形,使其符合特定的流量模式或速率限制。这有助于避免网络拥塞,确保流量的稳定性和可控性。
在实施基于规则的调度技术时,需要注意以下几点:
规则设计:规则的设计应充分考虑数据中心的实际情况和需求,确保规则的有效性和适用性。
规则更新与维护:随着数据中心环境的变化和业务需求的变化,可能需要定期更新和维护调度规则,以适应新的情况。
性能监控与优化:需要对调度系统的性能进行持续监控,并根据实际情况进行优化调整,以确保其高效稳定运行。
基于反馈的实时调度
流量调度本质上与交通、 物流等领域的调度问题没有区别, 而实时调度在这些领域中有广泛的应用。而网络流量的调度技术中,结合反馈信息的实时调度研究相对较少。其根本原因在于, 网络环境相比传统的交通、 物流, 信息更难测量获取。
高性能网络拥塞检测技术
高性能网络拥塞检测技术是确保网络流畅运行、优化数据传输效率的关键技术之一。在网络流量日益增大的背景下,如何及时、准确地检测网络拥塞,并采取相应的措施进行缓解,对于提升数据中心的整体性能和稳定性具有重要意义。高性能网络拥塞检测技术主要依赖于对网络流量、链路状态、队列长度等多种参数的实时监测和分析。这些参数能够反映网络的实时运行状况,从而判断是否存在拥塞现象。以下是关于高性能网络拥塞检测技术的详细介绍:
技术原理
高性能网络拥塞检测技术基于对网络流量特性的深入理解和分析。当网络发生拥塞时,数据包在传输过程中会出现延迟、丢包等现象,这些现象可以通过对网络流量参数的监测来识别。具体来说,拥塞检测技术会实时收集网络流量数据,包括数据包的大小、传输速率、传输延迟等,并对这些数据进行统计分析。当数据超过预设的阈值时,系统就会判断网络发生了拥塞。
关键参数
数据包传输速率:通过监测数据包在单位时间内的传输数量,可以判断网络的负载情况。当传输速率持续高于网络的处理能力时,就可能发生拥塞。
数据包传输延迟:传输延迟反映了数据包在网络中的传输时间。当延迟时间持续增加时,可能意味着网络发生了拥塞,导致数据包排队等待传输。
丢包率:丢包率是衡量网络拥塞程度的重要指标。当网络发生拥塞时,由于缓冲区溢出等原因,数据包可能会被丢弃。通过监测丢包率的变化,可以及时发现网络拥塞现象。
检测方法
基于阈值的检测:这种方法通过设定固定的阈值来判断网络是否拥塞。当某个参数的值超过阈值时,就认为网络发生了拥塞。这种方法简单易行,但阈值的设定需要根据网络的实际情况进行调整,以避免误报或漏报。
基于统计的检测:这种方法通过对网络流量数据进行统计分析来判断网络是否拥塞。例如,可以计算数据包的平均传输延迟、标准差等统计量,然后根据这些统计量的变化来判断网络状态。这种方法相对复杂,但能够更准确地反映网络的实时状态。
为了进一步提高高性能网络拥塞检测技术的准确性和效率,研究者们正在不断探索新的优化方法和技术。例如,利用机器学习算法对网络流量数据进行深度学习和预测,以更准确地识别拥塞现象;同时,结合多源数据融合技术,将不同类型的网络流量数据进行综合分析和处理,以提高检测的准确性和可靠性。
此外,随着网络技术的不断发展,未来高性能网络拥塞检测技术还将面临更多的挑战和机遇。例如,在5G、物联网等新兴技术的推动下,网络流量将呈现出更加复杂和多样化的特点,这将对拥塞检测技术提出更高的要求。因此,未来的研究将更加注重技术创新和实际应用相结合,以推动高性能网络拥塞检测技术的不断发展和完善。
本文来源于:数据中心高性能网络拥塞检测技术白皮书