CN115174583B - 基于可编程数据平面的服务器负载均衡方法 - Google Patents
基于可编程数据平面的服务器负载均衡方法 Download PDFInfo
- Publication number
- CN115174583B CN115174583B CN202210744815.5A CN202210744815A CN115174583B CN 115174583 B CN115174583 B CN 115174583B CN 202210744815 A CN202210744815 A CN 202210744815A CN 115174583 B CN115174583 B CN 115174583B
- Authority
- CN
- China
- Prior art keywords
- server
- real
- connection
- weight
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 2
- 230000010354 integration Effects 0.000 claims description 2
- 230000000737 periodic effect Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims 1
- 230000006835 compression Effects 0.000 abstract description 3
- 238000007906 compression Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于可编程数据平面的服务器负载均衡方法,在数据中心的服务器集群中,根据服务器实时负载和可用算力衡量服务器当前实际性能并赋予权重,通过提出的WMLCF算法计算服务器权重,能够更准确反映服务器当前的实际性能。该算法定期更新M台当前性能较高的服务器并以表项形式下发到数据平面用于新连接请求的负载均衡调度。另外,该负载均衡方法实现为带状态,同时引入布隆过滤器以保证服务器权重更新过程中连接一致性。最后,本发明使用表项压缩的方法存储表项以减少可编程数据平面有限SRAM内存的消耗,能够保存大量的连接状态,从而保证连接请求高并发情况下的负载均衡。因此,本发明可实现较高性能的服务器负载均衡。
Description
技术领域
本发明涉及可编程网络和数据中心中服务器集群的负载均衡领域,尤其涉及对数据中心的服务器集群基于可编程数据平面的带状态负载均衡方法。
背景技术
一个大规模的数据中心通常会提供数千种服务,比如电商、社交及视频服务等。每个服务分配一个虚拟IP(VIP,Virtual IP)地址,同时由多台物理服务器构成服务器集群共同提供该服务,每台物理服务器拥有专门的IP(DIP,Direct IP)地址。对于一个数据中心,VIP流量占比约44%,而这些大量流量需要流经负载均衡器进行后端服务器之间的调度。因此,需要一个高效的负载均衡方案将VIP流量的每个数据包映射转发到对应的后端服务器,与此同时,属于同一条连接的所有数据包都要发送给同一台服务器处理,以此保证连接一致性。如果同一条连接的数据包转发到不同服务器将导致中断连接,引入了额外的转发时延,影响终端用户体验。
现有的负载均衡器主要实现方式包括基于软件、硬件以及软硬件混合。软件负载均衡器,实现在现成的服务器上,具有低成本、高可扩展性及高灵活性的优势,但是存在高时延、低吞吐量两个基本问题。此外,为了保证连接一致性,软件负载均衡器通常使用一致性哈希(consistent hashing)将连接请求分发给后端服务器处理。为了解决软件负载均衡器性能有限问题,软硬件混合的负载均衡器结合了硬件比如交换机高性能优势,然而在后端服务器对新连接请求的调度过程多数也仅通过一致性哈希实现。近年来,交换机厂商开始研发可编程交换ASICs,比如Intel的Tofino系列芯片。可编程交换ASICs的落地让交换机数据平面也具备了可编程能力,因为可编程交换ASICs具有更高的性能(如,Tb级别的吞吐量)以及可编程性,已经有许多负载均衡方案将负载均衡功能卸载到可编程数据平面。这些方案在性能上能够实现更高的吞吐量以及更低的转发时延,然而,对于后端服务器的调度多数方案使用一般的哈希算法或者一致性哈希的变体算法。
发明内容
对于现有的负载均衡方案,大多数都依赖基于哈希或者一致性哈希变体机制在服务器之间分配连接请求,没有考虑不同服务器实际状态的差异性,即服务器之间不同的计算能力以及实际的负载,这可能导致服务器之间负载分布不均衡,换句话说,可能导致高性能的服务器空闲而低性能的服务器过载,服务器资源得不到有效利用。有鉴于此,本发明提出一种基于可编程数据平面的带状态负载均衡方法,该方法基于服务器可用处理能力和实时负载进行连接请求的调度,同时带状态方法保证了连接一致性。
本发明旨在基于可编程数据平面实现一种能够提升服务器负载分布公平性的负载均衡方法,同时在负载均衡调度过程中保证高性能的转发、连接一致性以及减小交换机SRAM空间占用。
为了实现最小化的服务器负载分布不均衡,本发明提出了WMLCF(Weighted M-Least-Connection First)算法,该算法基于服务器可用算力和实时负载计算不同服务器的动态权重,在服务器权重每个更新周期内根据不同权重选择实际剩余算力较高的M台服务器接收连接请求。另外,本发明引入了布隆过滤器(bloom filter)来避免在后端服务器权重更新过程中可能导致违反连接一致性的问题。同时,考虑到交换机内存有限的限制,本发明采用了数据平面中对表项进行压缩存储的方法,以此节省交换机SRAM内存消耗同时能够存储大量的连接状态,保证在连接请求高并发情况下的负载均衡性能。
本发明的整体实现包括交换机数据平面和控制平面:
1、数据平面负责数据包处理转发,该过程不涉及控制平面,保证了较快的负载均衡速度,主要包括以下组件:
(1)连接表(ConnTable):存储每条连接状态,即每条连接(五元组)到DIP服务器的映射。当现有连接的数据包到达时,将在连接表中进行匹配对应DIP,然后直接转发出去,保证了同一条连接所有数据包都转发到同一台DIP服务器,即连接一致性。如果是新的连接请求则执行之后的步骤。
(2)服务表(VIPTable):维护该服务器集群所提供的所有VIP即服务,如果新的连接不能在服务表中获得一个匹配,则说明该连接所请求的服务不在该服务器集群,直接将该连接数据包丢掉。
(3)转发表(ForwardingTable):用于为新连接请求分配DIP服务器处理,存储每个VIP对应的DIP池,只存储由控制平面计算得到的实际可用算力较高的M台服务器对应DIP。
(4)服务器表(DIPTable):存储数据中心中所有服务器实际DIP,用于匹配转发。
(5)布隆过滤器(bloom filter):布隆过滤器是一种空间占用小但是高效的常用于元素查询的数据结构,我们利用它存储在服务器权重调整过程中到达的新连接,这样对于现有连接要么在连接表中要么在布隆过滤器中,保证了权重调整期间连接一致性。
2、控制平面负责服务器实时权重的计算更新,同时把对应表项下发到数据平面,主要包括以下模块:
(1)连接统计模块(Conn_Count Module):统计每台服务器上长连接和短连接数量,长短连接的检测在数据平面实现,然后通知控制平面。
(2)服务器权重模块(DIP_Weight Module):存储每个VIP对应DIP服务器的权重,并将权重最小的M台DIP服务器以表项形式定期下发到数据平面用以负载均衡调度。
(3)权重计算模块(WMLCF Module):负责基于服务器实时剩余算力和实时负载应用提出的WMLCF算法定期计算服务器的权重,然后将结果存储到服务器权重模块。
本发明具体采用以下步骤设计:
一种基于可编程数据平面的服务器负载均衡方法,其特征在于:其包括如下步骤:
步骤S1:交换机控制平面对服务器集群中不同服务器的实时负载进行评估;
步骤S2:交换机控制平面对服务器集群中不同服务器的实时可用算力进行评估;
步骤S3:交换机控制平面对服务器集群中不同服务器根据其实时负载和可用算力利用WMLCF算法定期计算更新服务器的实时权重,以衡量服务器当前实际性能;
步骤S4:选择当前实际权重较小(即性能较高)的M台服务器以表项形式定期下发到数据平面用以负载均衡调度;
步骤S5:在服务器权重定期调整过程中,保证数据平面数据包转发的连接一致性;
步骤S6:为了在数据平面有限的SRAM内存保存大量连接状态以保证较高速度的负载均衡调度,对表项进行压缩以减少内存占用;
所述WMLCF算法基于服务器可用算力和实时负载计算不同服务器的动态权重,以实现在服务器权重每个更新周期内根据不同权重选择实际剩余算力较高的M台服务器接收连接请求。
进一步地,步骤S1中,服务器的实时负载评估包括服务器上长短连接的检测、活动长短连接数的统计、长短连接的权值和服务器实时负载的计算。
进一步地,步骤S1中,服务器上长短连接的检测在数据平面基于连接的数据包数量阈值实现;活动长短连接数根据TCP连接的SYN数据包(标志连接的开始)和FIN/RST数据包(标志连接的结束)进行检测统计;长短连接的权值预先配置,权值越大表示该连接负载越高;服务器的实时负载为该服务器上活动长短连接数与其权值的乘积的累加。
进一步地,步骤S2中,服务器的实时可用算力评估包括算力评估指标的选取和实时可用算力的计算。
进一步地,步骤S2中,服务器算力评估选取的指标包括对服务器性能有重要影响的CPU和内存的可用利用率;根据其对服务器性能影响程度高低进行线性加权作为服务器的实时可用算力。
进一步地,步骤S3中,服务器的当前实际性能衡量包括步骤S1中服务器的实时负载和步骤S2中服务器的实时可用算力的综合和服务器动态权重的计算。
进一步地,步骤S3中,服务器的动态权重根据WMLCF算法计算,用以衡量服务器当前的实际性能,所述WMLCF算法基于服务器的实时负载和实时可用算力实现,即服务器的动态权重为步骤S1中服务器的实时负载和步骤S2中服务器的实时可用算力的比值;服务器权重越小意味着该服务器实时负载越小,同时可用算力越高,即服务器当前实际性能越高;
所述WMLCF算法的具体实现过程包括:
1、服务器实时负载评估
在数据平面利用基于数据包数量阈值的方法对长短连接进行检测,然后通知控制平面,其将服务器上活动的长短连接进行分类并赋予不同权值,权值越大表示该连接负载越高;
设一个服务器集群S={S1,S2,...,Sn},服务器Si的实时负载为L(Si),则:
其中,Cij表示服务器Si活动连接类型j的数量;j=0或j=1分别表示短连接和长连接;wj表示连接类型j的权值;从公式(1)得出,对于L(Si),值越小表示服务器Si实时负载越低;
2、服务器可用算力评估
只考虑对服务器性能有重要影响的两个指标CPU和内存的剩余可用利用率,对这两个指标线性加权即为服务器剩余可用算力C(Si):
其中,AC(Si)和AM(Si)分别表示服务器Si的CPU和内存剩余可用利用率;α和β系数分别取决于CPU和内存对服务器性能的影响程度,影响程度越大则系数越大;从公式(2)得出,对于C(Si),值越大表示服务器Si剩余可用算力越多;
3、服务器权重计算
服务器权重为实时负载和剩余可用算力的比值,根据公式(1)和公式(2),服务器Si权重W(Si)为:
W(Si)=L(Si)/C(Si) (3)
从公式(3)得出,对于服务器Si,权重W(Si)越小说明其实时负载L(Si)越低同时剩余可用算力C(Si)越多,意味着其当前实际性能越高。
进一步地,步骤S4中选择的M台服务器是基于步骤S3中所计算的服务器权重,选择权重较小的M台服务器以表项形式下发到数据平面用于负载均衡调度;其中,M可根据服务器集群规模动态配置。
进一步地,在步骤S5中,在服务器权重定期更新期间,为避免新连接因表项下发存在时延可能出现该连接前几个数据包选择原先服务器处理而随后的数据包选择新下发的服务器处理,导致违反连接一致性问题,利用布隆过滤器存储在此期间到达的新连接,其中的新连接都选择原先的就服务器转发处理,以保证连接一致性。
进一步地,步骤S6中,为在可编程数据平面有限的SRAM空间存储大量连接状态,对连接表中表项进行压缩存储:对于每条连接状态,其表项的匹配键Key不直接存储五元组,即:源IP地址、目的IP地址、源端口、目的端口、协议,而是存储其哈希值;表项的动作值Action不直接存储实际服务器IP地址和端口,而是存储其映射服务器编号ID。
本发明及其优选方案在数据中心的服务器集群中,根据服务器实时负载和可用算力衡量服务器当前实际性能并赋予权重,通过提出的WMLCF(Weighted M-Least-Connection First)算法计算服务器权重,能够更准确反映服务器当前的实际性能。该算法定期更新M台当前性能较高(权重较小)的服务器并以表项形式下发到数据平面用于新连接请求的负载均衡调度,因负载均衡调度在数据平面实现,保证了较快的负载均衡速度,也使得性能较高的服务器能够处理更多的新连接请求,提高了服务器负载分布的均衡性以及服务器资源利用率。另外,该负载均衡方法实现为带状态,同时引入布隆过滤器以保证服务器权重更新过程中连接一致性。最后,本发明使用表项压缩的方法存储表项以减少可编程数据平面有限SRAM内存的消耗,能够保存大量的连接状态,从而保证连接请求高并发情况下的负载均衡。因此,本发明可实现较高性能的服务器负载均衡。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为本发明实施例基于可编程数据平面的服务器负载均衡方法的框架图;
图2为本发明实施例基于可编程数据平面的服务器负载均衡方法提出的WMLCF(Weighted M-Least-Connection First)算法伪代码示意图;
图3为本发明实施例基于可编程数据平面的服务器负载均衡方法的流程图。
具体实施方式
为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本说明书使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1-图3所示,本发明实施例提出的WMLCF算法根据服务器实时负载以及可用算力计算服务器权重,然后根据不同服务器权重选择M台综合性能较高的服务器以表项形式下发到数据平面用以负载均衡调度,WMLCF算法伪代码如图2所示,其具体实现原理如下:1、服务器实时负载评估
服务器的负载取决于活动连接数,而数据中心中大小流(长短连接)共存,其流量分布还符合“80/20”准则。相比于短连接,长连接的数据包的大小更大以及持续时间更长,需要消耗的服务器资源更大,相当于更高的负载。因此,为了更准确反映服务器实时负载,在数据平面利用基于数据包数量阈值的方法对长短连接进行检测,然后通知控制平面,其将服务器上活动的长短连接进行分类并赋予不同权值,权值越大表示该连接负载越高。另外,活动连接数根据TCP连接的SYN数据包(标志连接的开始)和FIN/RST数据包(标志连接的结束)进行检测统计。
假设一个服务器集群S={S1,S2,...,Sn},服务器Si的实时负载为L(Si),则:
其中,Cij表示服务器Si活动连接类型j的数量;j=0或j=1分别表示短连接和长连接;wj表示连接类型j的权值;从公式⑴可以得出,对于L(Si),值越小表示服务器Si实时负载越低。
2、服务器可用算力评估
考虑到服务器集群中服务器的异构性,即不同服务器其硬件配置不同,因此只考虑服务器的实时负载还不够,服务器实际性能还取决于剩余可用算力。影响服务器剩余算力的主要指标有CPU、内存、硬盘类型、I/O速度以及网络带宽,为了减少计算开销我们只考虑对服务器性能有重要影响的两个指标CPU和内存的剩余可用利用率。然后,对这两个指标线性加权即为服务器剩余可用算力C(Si):
C(Si)=αAC(Si)+βAM(Si),α+β=1 ⑵
其中,AC(Si)和AM(Si)分别表示服务器Si的CPU和内存剩余可用利用率;α和β系数分别取决于CPU和内存对服务器性能的影响程度,影响程度越大则系数越大。从公式⑵可用得出,对于C(Si),值越大表示服务器Si剩余可用算力越多。
3、服务器权重计算
服务器当前的实际性能取决于其实时负载以及可用处理能力,我们用权重表示服务器当前的的实际性能,服务器权重为其实时负载和剩余可用算力的比值,根据公式⑴和公式⑵,服务器Si权重W(Si)为:
W(Si)=L(Si)/C(Si) ⑶
从公式⑶可以得出,对于服务器Si,权重W(Si)越小说明其实时负载L(Si)越低同时剩余可用算力C(Si)越多,意味着其当前实际性能越高。
在WMLCF算法中,服务器权重随着实时负载和剩余可用算力动态变化,因此,能够更准确反映服务器当前实际性能。服务器集群中权重最小的M(可根据服务器规模设置)台服务器以表项的形式下发到数据平面用于新请求的负载均衡调度,不选择服务器权重最小的唯一那台服务器下发是考虑到如果在短时间内有大量连接请求到达,可能会导致这台服务器过载,同时,保证了实际性能较高的服务器能够处理更多的连接请求。因此,我们选择多台服务器共同处理新连接请求以避免上述问题。
此外,在服务器权重更新期间可能存在违反连接一致性问题。具体来说,如果在服务器权重更新及表项下发期间有新的连接请求到达,而表项下发到数据平面由于需要控制平面参与存在一定时延(ms级别)。这样可能导致一种情况:由于存在表项安装时延,这条新连接的第一个数据包在新表项安装之前到达,则其会选择旧服务器去处理,之后新表现安装完成,这条新连接随后的数据包就会选择新服务器,即违反了连接一致性。为了解决该情况,本发明引入了布隆过滤器,用于存储在服务器权重更新期间到达的新连接,这些新连接都会选择旧服务器去处理,保证了连接一致性,而未在布隆过滤器中的新连接将选择新服务器处理。布隆过滤器在数据平面的实现可以使用register对象,而且SRAM内存占用小。
同时,因为现有可编程交换机ASICs的SRAM内存空间有限(~100MB),无法直接存储数据中心10million数量级的连接数。对于IPv4连接,每条连接状态需要存储一个13-byte(五元组)匹配键(Key)和一个6-byte(DIP:port)动作值(Action),意味着连接表存储10Million连接数需要消耗至少190MB,超过了现有可编程交换机一般100MB可用SRAM。为了可用存储这些连接数,我们对连接表中表项进行压缩,对于匹配键,我们存储五元组的24-bit哈希值;对于动作值,我们存储DIP_ID,对于大型数据中心来说服务器规模通常是几万台,因此DIP_ID我们设置为16-bit。经过表项压缩后,存储一条连接状态只需要5B,存储10Million连接数只要消耗50MB SRAM空间。因此,足够在现有可编程交换机ASICs存储数百万数量级的连接数。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程、以及流程图中的流程结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程图中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程中指定的功能的步骤。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的基于可编程数据平面的服务器负载均衡方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。
Claims (1)
1.一种基于可编程数据平面的服务器负载均衡方法,其特征在于:其包括如下步骤:
步骤S1:交换机控制平面对服务器集群中不同服务器的实时负载进行评估;
步骤S2:交换机控制平面对服务器集群中不同服务器的实时可用算力进行评估;
步骤S3:交换机控制平面对服务器集群中不同服务器根据其实时负载和可用算力利用WMLCF算法定期计算更新服务器的实时权重,以衡量服务器当前实际性能;
步骤S4:选择当前实际权重较小的M台服务器以表项形式定期下发到数据平面用以负载均衡调度;
步骤S5:在服务器权重定期调整过程中,保证数据平面数据包转发的连接一致性;
步骤S6:对表项进行压缩以减少内存占用;
所述WMLCF算法基于服务器可用算力和实时负载计算不同服务器的动态权重,以实现在服务器权重每个更新周期内根据不同权重选择实际剩余算力较高的M台服务器接收连接请求;
步骤S1中,服务器的实时负载评估包括服务器上长短连接的检测、活动长短连接数的统计、长短连接的权值和服务器实时负载的计算;
步骤S1中,服务器上长短连接的检测在数据平面基于连接的数据包数量阈值实现;活动长短连接数根据TCP连接的SYN数据包和FIN/RST数据包进行检测统计;长短连接的权值预先配置,权值越大表示该连接负载越高;服务器的实时负载为该服务器上活动长短连接数与其权值的乘积的累加;
步骤S2中,服务器的实时可用算力评估包括算力评估指标的选取和实时可用算力的计算;
步骤S2中,服务器算力评估选取的指标包括对服务器性能有重要影响的CPU和内存的可用利用率;根据其对服务器性能影响程度高低进行线性加权作为服务器的实时可用算力;
步骤S3中,服务器的当前实际性能衡量包括步骤S1中服务器的实时负载和步骤S2中服务器的实时可用算力的综合和服务器动态权重的计算;
步骤S3中,服务器的动态权重根据WMLCF算法计算,用以衡量服务器当前的实际性能,所述WMLCF算法基于服务器的实时负载和实时可用算力实现,即服务器的动态权重为步骤S1中服务器的实时负载和步骤S2中服务器的实时可用算力的比值;服务器权重越小意味着该服务器实时负载越小,同时可用算力越高,即服务器当前实际性能越高;
所述WMLCF算法的具体实现过程包括:
1、服务器实时负载评估
在数据平面利用基于数据包数量阈值的方法对长短连接进行检测,然后通知控制平面,其将服务器上活动的长短连接进行分类并赋予不同权值,权值越大表示该连接负载越高;
设一个服务器集群S={S1,S2,...,Sn},服务器Si的实时负载为L(Si),则:
其中,Cij表示服务器Si活动连接类型j的数量;j=0或j=1分别表示短连接和长连接;wj表示连接类型j的权值;从公式(1)得出,对于L(Si),值越小表示服务器Si实时负载越低;
2、服务器可用算力评估
只考虑对服务器性能有重要影响的两个指标CPU和内存的剩余可用利用率,对这两个指标线性加权即为服务器剩余可用算力C(Si):
C(Si)=αAC(Si)+βAM(Si) ,α+β=1 (2)
其中,AC(Si)和AM(Si)分别表示服务器Si的CPU和内存剩余可用利用率;α和β系数分别取决于CPU和内存对服务器性能的影响程度,影响程度越大则系数越大;从公式(2)得出,对于C(Si),值越大表示服务器Si剩余可用算力越多;
3、服务器权重计算
服务器权重为实时负载和剩余可用算力的比值,根据公式(1)和公式(2),服务器Si权重W(Si)为:
W(Si)=L(Si)/C(Si) (3)
从公式(3)得出,对于服务器Si,权重W(Si)越小说明其实时负载L(Si)越低同时剩余可用算力C(Si)越多,意味着其当前实际性能越高;
步骤S4中选择的M台服务器是基于步骤S3中所计算的服务器权重,选择权重较小的M台服务器以表项形式下发到数据平面用于负载均衡调度;其中,M根据服务器集群规模动态配置;
在步骤S5中,在服务器权重定期更新期间,为避免新连接因表项下发存在时延可能出现该连接前几个数据包选择原先服务器处理而随后的数据包选择新下发的服务器处理,导致违反连接一致性问题,利用布隆过滤器存储在此期间到达的新连接,其中的新连接都选择原先的就服务器转发处理,以保证连接一致性;
步骤S6中,为在可编程数据平面有限的SRAM空间存储大量连接状态,对连接表中表项进行压缩存储:对于每条连接状态,其表项的匹配键Key不直接存储五元组,即:源IP地址、目的IP地址、源端口、目的端口、协议,而是存储其哈希值;表项的动作值Action不直接存储实际服务器IP地址和端口,而是存储其映射服务器编号ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210744815.5A CN115174583B (zh) | 2022-06-28 | 2022-06-28 | 基于可编程数据平面的服务器负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210744815.5A CN115174583B (zh) | 2022-06-28 | 2022-06-28 | 基于可编程数据平面的服务器负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115174583A CN115174583A (zh) | 2022-10-11 |
CN115174583B true CN115174583B (zh) | 2024-03-29 |
Family
ID=83489178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210744815.5A Active CN115174583B (zh) | 2022-06-28 | 2022-06-28 | 基于可编程数据平面的服务器负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174583B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116418749B (zh) * | 2023-02-17 | 2023-11-17 | 通明智云(北京)科技有限公司 | 一种动态调整权重的负载均衡方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584262B1 (en) * | 2002-02-11 | 2009-09-01 | Extreme Networks | Method of and system for allocating resources to resource requests based on application of persistence policies |
CN104168332A (zh) * | 2014-09-01 | 2014-11-26 | 广东电网公司信息中心 | 高性能计算中负载均衡与节点状态监控方法 |
CN104994156A (zh) * | 2015-07-01 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 一种集群的负载均衡方法及*** |
CN105007312A (zh) * | 2015-07-03 | 2015-10-28 | 叶秀兰 | 一种云计算服务器自适应负载均衡控制方法及控制*** |
CN108667878A (zh) * | 2017-03-31 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 服务器负载均衡方法及装置、存储介质、电子设备 |
CN109960586A (zh) * | 2019-02-19 | 2019-07-02 | 北京邮电大学 | 一种服务器状态可感知的四层负载均衡器及均衡方法 |
CN109995818A (zh) * | 2017-12-29 | 2019-07-09 | 中移(杭州)信息技术有限公司 | 一种服务器负载均衡的方法及装置 |
CN110532094A (zh) * | 2019-08-23 | 2019-12-03 | 四川汇安融信息技术服务有限公司 | 一种负载均衡权重值修改方法及处理*** |
CN111416869A (zh) * | 2020-03-26 | 2020-07-14 | 华泰证券股份有限公司 | 一种分布式集群中节点权重调整的方法 |
CN112217894A (zh) * | 2020-10-12 | 2021-01-12 | 浙江大学 | 一种基于动态权重的负载均衡*** |
CN113329048A (zh) * | 2021-04-13 | 2021-08-31 | 网络通信与安全紫金山实验室 | 基于交换机的云负载均衡方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489750B2 (en) * | 2008-02-28 | 2013-07-16 | Level 3 Communications, Llc | Load-balancing cluster |
DE102008040009A1 (de) * | 2008-08-27 | 2010-03-04 | Siemens Aktiengesellschaft | Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm |
US8984226B2 (en) * | 2011-06-24 | 2015-03-17 | International Business Machines Corporation | Load balancing based upon data usage |
US10033645B2 (en) * | 2015-09-29 | 2018-07-24 | Dell Products L.P. | Programmable data plane hardware load balancing system |
-
2022
- 2022-06-28 CN CN202210744815.5A patent/CN115174583B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584262B1 (en) * | 2002-02-11 | 2009-09-01 | Extreme Networks | Method of and system for allocating resources to resource requests based on application of persistence policies |
CN104168332A (zh) * | 2014-09-01 | 2014-11-26 | 广东电网公司信息中心 | 高性能计算中负载均衡与节点状态监控方法 |
CN104994156A (zh) * | 2015-07-01 | 2015-10-21 | 北京京东尚科信息技术有限公司 | 一种集群的负载均衡方法及*** |
CN105007312A (zh) * | 2015-07-03 | 2015-10-28 | 叶秀兰 | 一种云计算服务器自适应负载均衡控制方法及控制*** |
CN108667878A (zh) * | 2017-03-31 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 服务器负载均衡方法及装置、存储介质、电子设备 |
CN109995818A (zh) * | 2017-12-29 | 2019-07-09 | 中移(杭州)信息技术有限公司 | 一种服务器负载均衡的方法及装置 |
CN109960586A (zh) * | 2019-02-19 | 2019-07-02 | 北京邮电大学 | 一种服务器状态可感知的四层负载均衡器及均衡方法 |
CN110532094A (zh) * | 2019-08-23 | 2019-12-03 | 四川汇安融信息技术服务有限公司 | 一种负载均衡权重值修改方法及处理*** |
CN111416869A (zh) * | 2020-03-26 | 2020-07-14 | 华泰证券股份有限公司 | 一种分布式集群中节点权重调整的方法 |
CN112217894A (zh) * | 2020-10-12 | 2021-01-12 | 浙江大学 | 一种基于动态权重的负载均衡*** |
CN113329048A (zh) * | 2021-04-13 | 2021-08-31 | 网络通信与安全紫金山实验室 | 基于交换机的云负载均衡方法、装置及存储介质 |
Non-Patent Citations (7)
Title |
---|
SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs;Rui Miao等;SIGCOMM(第8期);第15-28页 * |
一种改进加权最小连接算法及在CDN的负载均衡技术中的应用分析;孟晓景、张春勇;山东科技大学学报(自然科学版)(第1期);第85-90页 * |
一种自适应权值最小负载的LVS集群负载均衡算法;杨婷;万良;马绍菊;马林进;;通信技术(04);第741-745页 * |
基于AHP的Web集群***负载均衡算法;张建东;邱颖豫;洪艳伟;李彬;;计算机工程(20);第71-74页 * |
基于动态权重的一致性哈希微服务负载均衡优化;张开琦;刘晓燕;王信;吉春山;严馨;;计算机工程与科学(08);第12-17页 * |
网格环境下加权动态效率的任务调度算法;童小念;王伟;舒万能;何秉姣;汪红;;武汉理工大学学报(03);第130-132、142页 * |
面向高并发服务请求的负载均衡技术研究;田丰;王喜艳;曹卫东;王静;曲文丽;;中国民航大学学报;20151015(05);第47-50、64页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115174583A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105491138B (zh) | 一种基于负载率分级触发的分布式负载调度方法 | |
Shi et al. | Load balancing for parallel forwarding | |
US11683119B2 (en) | Flowlet scheduler for multicore network processors | |
EP1116082B1 (en) | Dynamic load balancer for multiple network servers | |
US20060085554A1 (en) | System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets | |
CN110933139A (zh) | 一种解决Web服务器高并发的***及方法 | |
CN115174583B (zh) | 基于可编程数据平面的服务器负载均衡方法 | |
WO2001038972A1 (en) | Load balancing method in a communication network | |
Rupprecht et al. | SquirrelJoin: Network-aware distributed join processing with lazy partitioning | |
CN107566535B (zh) | 基于Web地图服务并发访问时序规则的自适应负载均衡方法 | |
CN109254846A (zh) | 基于两级调度的cpu与gpu协同计算的动态调度方法及*** | |
Qin et al. | Research on nginx dynamic load balancing Algorithm | |
Li et al. | Dynamic load balancing algorithm based on FCFS | |
CN110471761A (zh) | 服务器的控制方法、用户设备、存储介质及装置 | |
CN113067863B (zh) | 基于软件定义网络的动态负载均衡方法 | |
Carvalho et al. | Dyssect: Dynamic scaling of stateful network functions | |
CN108111567A (zh) | 实现服务器负载均匀的方法及*** | |
CN106209672B (zh) | 一种网络负载均衡的方法及*** | |
Shukla et al. | Load balancing approaches for web servers: A survey of recent trends | |
CN110399226B (zh) | 云***用负载平衡器 | |
Jin et al. | Survey of load balancing method based on DPDK | |
CN112148474A (zh) | 面向负载均衡的龙芯大数据一体机自适应任务分割方法及*** | |
Yang et al. | Research on load balancing algorithm based on the unused rate of the CPU and memory | |
Zhang et al. | A new load balancing scheduling algorithm based on linux virtual server | |
Chunlei et al. | Design and implementation of a TCP long connection load balancing algorithm based on negative feedback mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |