CN116489099A - 一种基于流分类的自适应负载均衡调度方法和系统 - Google Patents

一种基于流分类的自适应负载均衡调度方法和系统 Download PDF

Info

Publication number
CN116489099A
CN116489099A CN202310418257.8A CN202310418257A CN116489099A CN 116489099 A CN116489099 A CN 116489099A CN 202310418257 A CN202310418257 A CN 202310418257A CN 116489099 A CN116489099 A CN 116489099A
Authority
CN
China
Prior art keywords
load
flow
scheduling
weight
end server
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.)
Granted
Application number
CN202310418257.8A
Other languages
English (en)
Other versions
CN116489099B (zh
Inventor
包雯韬
郑明鑫
徐文豪
王弘毅
张凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhiling Haina Technology Co ltd
Original Assignee
SmartX Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SmartX Inc filed Critical SmartX Inc
Priority to CN202310418257.8A priority Critical patent/CN116489099B/zh
Publication of CN116489099A publication Critical patent/CN116489099A/zh
Application granted granted Critical
Publication of CN116489099B publication Critical patent/CN116489099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于流分类的自适应负载均衡调度方法和系统,其中,基于流分类的自适应负载均衡调度方法包括:采集流入服务器集群的数据流,根据数据流的大小将数据流分类为大流或小流;采集服务器集群中每一后端服务器的负载信息;根据大流负载计算公式或小流负载计算公式,使用负载信息和链路状态,分别计算服务器集群中每一后端服务器的调度权重;使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器。本发明的技术方案能解决现有技术中数据包乱序,后端服务器压力过大,难以高效处理大流和小流的问题。

Description

一种基于流分类的自适应负载均衡调度方法和系统
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种基于流分类的自适应负载均衡调度方法和系统。
背景技术
负载均衡器是一种将请求分散到服务器集群中可用服务器的设备。一个负载均衡器能够将请求调度到服务器集群中的某个后端服务器,所有服务器集群的后端服务器具有相同的业务应用,能够进行水平扩容来减轻其他服务器的压力。负载均衡器的调度算法决定了哪台后台服务器将进行请求处理。
通过设置负载均衡器能够提高应用系统的灵活性和可用性,提高应用业务的处理能力与扩展性。一个负载均衡器能够承担多种不同类型应用的流量转发任务,不同应用所产生的流量特征不同。在负载均衡场景中对于不同的流量特征,不同调度算法会产生不同的问题:
1,最常见的调度算法都会导致数据包到达后端服务器时出现同一个流数据包的乱序现象,同时也破坏了网络流的局部性。而基于流的Hash调度算法在一个大流的场景下,就会造成某个转发引擎负载过重。
2,难以感知到后端服务器的负载情况,导致某些后端服务器的压力过大,影响业务请求。
3,此外,当客户端同时进行多应用请求的时候,导致流量激增,可能会出现网络流量的特殊现象:大流很少但是总数据量很大,比如文件传输,小流很多但是总数据量很少,比如大量的web请求。这种现象发生后,大流的长尾效应会影响小流的数据包处理,一段时间内,后端服务器都在处理某个大流所对应的请求导致负载很高,而无法处理所有小流所对应的请求。
发明内容
本发明提供一种基于流分类的自适应负载均衡调度方案,旨在解决现有技术中数据包乱序,后端服务器压力过大,无难以高效处理大流和小流的问题。
为解决上述问题,根据本发明的第一方面,本发明提出了一种基于流分类的自适应负载均衡调度方法,包括:
采集流入服务器集群的数据流,根据数据流的大小将数据流分类为大流或小流;
采集服务器集群中每一后端服务器的负载信息;
根据大流负载计算公式或小流负载计算公式,使用负载信息和后端服务器的链路状态,分别计算服务器集群中每一后端服务器的调度权重;
使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器。
优选的,上述自适应负载均衡调度方法中,根据数据流的大小将数据流分类为大流或小流的步骤包括:
实时采集流入服务器集群的数据包;
对采集的每一数据包进行特征提取,得到每一数据包分别对应的数据包特征;
将数据包特征输入至流分类器,根据数据包特征对数据包对应的数据流进行分类,将数据流划分为大流或小流。
优选的,上述自适应负载均衡调度方法中,根据数据流的大小将数据流分类为大流或小流的步骤包括:
实时采集流入服务器集群的数据包;
分别提取每一数据包对应的五元组;
根据五元组判断数据包所属的数据流;
按照数据流对应的数据包数量,将数据流划分为大流或小流。
优选的,上述自适应负载均衡调度方法中,采集服务器集群中每一后端服务器的负载信息的步骤包括:
获取每一后端服务器的系统负载;
同步后端服务器上应用的状态信息,从状态信息中提取后端服务器上的应用负载;
对系统负载和应用负载进行归一化处理,得到后端服务器的负载信息;
将负载信息上报至负载均衡器。
优选的,上述自适应负载均衡调度方法中,根据大流负载计算公式或小流负载计算公式,使用负载信息和后端服务器的链路状态,分别计算服务器集群中每一后端服务器的调度权重的步骤,包括:
根据大流负载计算公式:大流负载=α1应用负载+α2系统负载+α3(RTT*ECN),计算所述后端服务器的调度权重,其中,α1为所述应用负载的权重,α2为所述系统负载的权重,α3为所述链路状态的权重,RTT为数据包的往返时延,ECN为链路的拥塞情况;
根据小流负载计算公式:小流负载=α4应用负载+α5系统负载+α6(RTT*ECN),计算所述后端服务器的调度权重,其中,α4为所述应用负载的权重,α5为所述系统负载的权重,α6为所述链路状态的权重;
对大流负载或小流负载进行归一化处理,根据调度权重与负载对应关系,计算每一后端服务器的调度权重,其中,调度权重与负载成反比。
优选的,上述自适应负载均衡调度方法中,使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器的步骤包括:
判断数据流属于大流还是小流;
若数据流属于大流,则根据源地址hash算法选取后端服务器;
判断被选中的后端服务器的调度权重是否大于或等于预定权重阈值;
若被选中的后端服务器的调度权重大于或等于预定权重阈值,则将数据流调度至被选中的后端服务器;
若被选中的后端服务器的调度权重小于预定权重阈值,则根据大流权重轮询算法重新轮询后端服务器的调度权重;
若数据流属于小流,则根据小流权重轮询算法选取后端服务器;
将数据流调度至后端服务器。
优选的,上述自适应负载均衡调度方法中,根据大流权重轮询算法重新轮询后端服务器的调度权重的步骤包括:
根据大流负载计算公式,重新计算服务器集群中每一后端服务器的调度权重;
将数据流调度至调度权重最大的后端服务器。
根据本发明的第二方面,本发明还提供了一种基于流分类的自适应负载均衡调度系统,包括:
数据流采集模块,用于采集流入服务器集群的数据流;
数据流分类模块,用于根据数据流的大小将数据流分类为大流或小流;
负载信息采集模块,用于采集服务器集群中每一后端服务器的负载信息;
调度权重计算模块,用于根据大流负载计算公式或小流负载计算公式,使用负载信息和后端服务器的链路状态,分别计算服务器集群中每一后端服务器的调度权重;
数据流调度模块,用于使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器。
优选的,上述自适应负载均衡调度系统中,负载信息采集模块包括:
系统负载获取子模块,用于获取每一后端服务器的系统负载;
状态信息同步子模块,用于同步后端服务器上应用的状态信息;
应用负载提取子模块,用于从状态信息中提取后端服务器上的应用负载;
负载归一化处理子模块,用于对系统负载和应用负载进行归一化处理,得到后端服务器的负载信息;
负载上报子模块,用于将负载信息上报至负载均衡器。
优选的,上述自适应负载均衡调度系统中,数据流调度模块包括:
类型判断子模块,用于判断数据流属于大流还是小流;
第一后端服务器选取子模块,用于若判定数据流属于大流,则根据源地址hash算法选取后端服务器;
调度权重判断子模块,用于判断被选中的后端服务器的调度权重是否大于或等于预定权重阈值;
第一数据流调度子模块,用于若被选中的后端服务器的调度权重大于或等于预定权重阈值时,将数据流调度至被选中的后端服务器;
调度权重轮询子模块,用于若被选中的后端服务器的调度权重小于预定权重阈值时,根据大流权重轮询算法重新轮询后端服务器的调度权重;
第二后端服务器选取子模块,用于若数据流属于小流,则根据小流权重轮询算法选取后端服务器;
第二数据流调度子模块,用于将数据流调度至后端服务器。
综上,本发明提供的基于流分类的自适应负载均衡调度方案,通过采集流入服务器集群的数据流,根据该数据流的大小对数据流进行分类,将数据流分类为大流和小流,然后采集服务器集群中每一后端服务器的负载信息以及链路状态,在确定数据流属于大流还是小流后,根据对应的大流负载计算公式或小流负载计算公式,使用上述负载信息和后端服务器的链路状态就能够分别计算得到服务器集群中每一后端服务器的调度权重,再使用大小流权重轮询算法,根据所述调度权重选择需要调度所述数据流的后端服务器,因为将数量划分为大流和小流,针对不同类型对应的调度权重选择后端服务器,这样就能够减小后端服务器的压力,高效处理大流和小流,降低数据包乱序的风险,从而解决现有技术中数据包乱序,后端服务器压力过大,难以高效处理大流和小流的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明实施例提供的一种基于流分类的自适应负载均衡调度方法的流程示意图;
图2是图1所示实施例提供的第一种数据流的分类方法的流程示意图;
图3是图1所示实施例提供的第二种数据流的分类方法的流程示意图;
图4是图1所示实施例提供的一种后端服务器的负载信息采集方法的流程示意图;
图5是图1所示实施例提供的一种调度权重的计算方法的流程示意图;
图6是图1所示实施例提供的一种根据调度权重选择后端服务器方法的流程示意图;
图7是图6所示实施例提供的一种调度权重轮询方法的流程示意图;
图8是本发明实施例提供的一种权重管理模块的结构示意图;
图9是本发明实施例提供的一种基于流分类的自适应负载均衡调度系统的结构示意图;
图10是图9所示实施例提供的一种负载信息采集模块的结构示意图;
图11是图9所示实施例提供的一种数据流调度模块的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决的技术问题是:
现有技术中,在负载均衡场景中对于不同的流量特征,不同调度算法会产生不同的问题:1,最常见的调度算法都会导致数据包到达后端服务器时出现同一个流数据包的乱序现象,同时也破坏了网络流的局部性。而基于流的Hash调度算法在一个大流的场景下,就会造成某个转发引擎负载过重。2,难以感知到后端服务器的负载情况,导致某些后端服务器的压力过大,影响业务请求。3,此外,当客户端同时进行多应用请求的时候,导致流量激增,可能会出现网络流量的特殊现象:大流很少但是总数据量很大,比如文件传输,小流很多但是总数据量很少,比如大量的web请求。这种现象发生后,大流的长尾效应会影响小流的数据包处理,一段时间内,后端服务器都在处理某个大流所对应的请求导致负载很高,而无法处理所有小流所对应的请求。
为了解决上述问题,本发明下述实施例提供了基于流分类的自适应负载均衡调度方案,基本分为三大步骤:首先通过流分类器,将所有流量分为大流和小流。然后,后端服务器通过负载采集器将其应用负载情况以及服务器的系统负载上报给负载均衡器。最后,负载均衡器根据流分类结果以及后端服务器的负载情况进行合理的调度。通过上述方案能够减小后端服务器的压力,高效处理大流和小流,降低数据包乱序的风险。
为实现上述目的,参见图1,图1是本发明实施例提供的一种基于流分类的自适应负载均衡调度方法的流程示意图。如图1所示,该基于流分类的自适应负载均衡调度方法,包括:
S110:采集流入服务器集群的数据流,根据数据流的大小将数据流分类为大流或小流。数据流是一次完整的数据传输,包含了该过程中所有的数据包,同一个流拥有相同五元组的数据包。其中,本发明根据间隔时间(例如2秒)将数据包切分为独立的流,也就是说属于同一个五元组的数据包它们的间隔时间超过1秒的话,则认为这两个数据包属于不同的流;如果同一个流的数据包总字节数大于100K,则认为该数据流是大流,反之该数据流为小流。
对于到达负载均衡器的每个数据包,都能够根据其五元组信息确定属于某个具体的数据流,而对于每个流都能够通过分类器将其划分为大流或者小流。流分类器能够采用简单的数据包统计模式或者是机器学习预测模式来决定其类别。
具体地,作为一种优选的实施例,如图2所示,上述自适应负载均衡调度方法中,步骤S110:根据数据流的大小将数据流分类为大流或小流的步骤包括:
S111:实时采集流入服务器集群的数据包;同一个流包含多个数据包,通过对数据包进行特征提取,就能够判断该数据包是否属于同一数据流。
S112:对采集的每一数据包进行特征提取,得到每一数据包分别对应的数据包特征;因为同一个数据流的所有数据包包含的五元组相同,因此能够将该数据包特征设置为上述五元组。
S113:将数据包特征输入至流分类器,根据数据包特征对数据包对应的数据流进行分类,将数据流划分为大流或小流。
本发明实施例提供的技术方案,通过实时采集数据包,对该数据包进行特征提取,得到每一数据包分别对应的数据包特征,从而输入至流分类器,根据数据包特征,将数据流划分为大流或小流,从而实现各数据流的准确分类。
另外数据流的划分还能够采用五元组的判断方法,具体地作为一种优选的实施例,如图3所示,上述自适应负载均衡调度方法中,步骤S110:根据数据流的大小将数据流分类为大流或小流的步骤包括:
S114:实时采集流入服务器集群的数据包;
S115:分别提取每一数据包对应的五元组;五元组包括源IP、目的IP、源端口、目的端口和协议类型。
S116:根据五元组判断数据包所属的数据流;
S117:按照数据流对应的数据包数量,将数据流划分为大流或小流。
本发明实施例提供的技术方案,通过根据五元组判断数据包所属的数据流,按照数据流对应的数据包数量就能够准确将数据流划分为大流或小流。
图1所示实施例提供的自适应负载均衡调度方法还包括以下步骤:
S120:采集服务器集群中每一后端服务器的负载信息;负载采集模块是部署在后端服务器上,专门用于采集服务器的负载。传统的机器负载有IO,CPU或者内存。但是对于大流或小流数据的优化,需要的负载信息主要是服务器上应用自身的负载以及服务器的系统负载(例如网卡的队列状态)。应用负载和系统负载的具体采集方式如下,参见图,4。
作为一种优选的实施例,如图4所示,图4所示的自适应负载均衡调度方法中,步骤S120:采集服务器集群中每一后端服务器的负载信息的步骤包括:
S121:获取每一后端服务器的系统负载。
S122:同步后端服务器上应用的状态信息,从状态信息中提取后端服务器上的应用负载。
S123:对系统负载和应用负载进行归一化处理,得到后端服务器的负载信息。
S124:将负载信息上报至负载均衡器。
本发明实施例提供的技术方案,后端服务器计算系统负载,各应用同步自身状态,上传应用负载,并且通过系统负载和应用负载进行负载的归一化处理,然后进行负载上报,将辅助信息上报至负载均衡器,从而实现服务器集群中每一后端服务器的负载采集。
图1所示实施例提供的技术方案,在采集得到每一后端服务器的负载信息后,还包括以下步骤:
S130:根据大流负载计算公式或小流负载计算公式,使用负载信息和后端服务器的链路状态,分别计算服务器集群中每一后端服务器的调度权重。
如图8所示,该步骤由权重管理模块负责,权重管理模块负责管理后端服务器所上报的自身负载情况,以及负载均衡器主动发起的数据采集,然后使用这些数据,根据大流负载计算公式和小流负载计算公式进行后端服务器权重(取值范围[0,100])的重新计算。权重管理模块在负载采集后,主要包括负载管理、链路状态关联、大流权重计算和小流权重计算等部分。
负载管理负责维护后端服务器上报的负载数据,如下表所示:
具体地,作为一种优选的实施例,如图5所示,上述自适应负载均衡调度方法中,步骤S130:根据大流负载计算公式或小流负载计算公式,使用负载信息和后端服务器的链路状态,分别计算服务器集群中每一后端服务器的调度权重的步骤,包括:
S131:根据大流负载计算公式:大流负载=α1应用负载+α2系统负载+α3(RTT*ECN),计算后端服务器的调度权重,其中,α1为应用负载的权重,α2为系统负载的权重,α3为链路状态的权重,RTT为数据包的往返时延,ECN为链路的拥塞情况。
或者,
S132:根据小流负载计算公式:小流负载=α4应用负载+α5系统负载+α6(RTT*ECN),计算后端服务器的调度权重,其中,α4为应用负载的权重,α5为系统负载的权重,α6为链路状态的权重。
S133:对大流负载或小流负载进行归一化处理,根据调度权重与负载对应关系,计算每一后端服务器的调度权重,其中,调度权重与负载成反比。
本发明实施例提供的技术方案,通过链路状态管理负责维护负载均衡器跟后端服务器之间的反映链路状态的数据,包括数据包的往返时延RTT和链路的拥塞情况ECN等。本发明实施例中主要维护RTT和ECN,其中,RTT表示数据包的往返时延,可以通过TCPTimestamp选项来计算,计算公式为RTT=当前时间-数据包中Timestamp选项的发送时间。ECN表示链路的拥塞情况,统计每秒钟内数据包的TOS字段的最后两位为11的数据包比例,如果数据包比例超过20%,则认为链路发生拥塞。
关于大流负载计算公式和小流负载计算公式如下:
由于小流对于系统负载的敏感度高,大流对于应用负载的敏感度较高,则在计算权重的时候应该增加该数据的比重。
大流负载计算公式:按照(50%应用负载*30%系统负载*20%(RTT*ECN));α1取50%,α2取30%,α3取20%。
小流负载计算公式:按照(20%应用负载*70%系统负载*10%(RTT*ECN));其中,α4取20%,α5取70%,α6取10%。
关于后端服务器的调度权重,假设有三台后端服务器:rs1,rs2和rs3,通过上述大流计算后的负载为1000,2000,7000,则将他们归一化到权重范围[0,100],结果负载为10,20,70,又因为在负载均衡的算法中,权重越高代表着优先调度,因此最终的调度权重为70,20和10。同理,小流的权重计算类似,但是由于负载的计算方式不一样,所以权重的计算结果很可能跟大流的不同。
图1所示实施例提供的技术方案,在计算得到服务器集群中每一后端服务器的调度权重后还包括:
S140:使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器。大小流权重轮询算法如下:根据上述权重管理模块计算出的调度权重对后端服务器进行调度。比如大流的当前权重为[rs1:10,rs2:20,rs3:70]则选择rs3作为选中的后端服务器。小流也是类似的机制。通过上述大小流权重轮询算法,能够根据上述调度权重准确调度所需的后端服务器。
作为一种优选的实施例,如图6所示,上述自适应负载均衡调度方法中,步骤S140:使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器的步骤包括:
S141:判断数据流属于大流还是小流。
S142:若数据流属于大流,则根据源地址hash算法选取后端服务器。
S143:判断被选中的后端服务器的调度权重是否大于或等于预定权重阈值。
S144:若被选中的后端服务器的调度权重大于或等于预定权重阈值,则将数据流调度至被选中的后端服务器。
S145:若被选中的后端服务器的调度权重小于预定权重阈值,则根据大流权重轮询算法重新轮询后端服务器的调度权重。
S146:若数据流属于小流,则根据小流权重轮询算法选取后端服务器。
S147:将数据流调度至后端服务器。
本发明实施例提供的技术方案中,后端服务器调度算法基于源地址Hash的结果之上再进行更细粒度的调度。调度的原则主要有几点:
1,属于同一个大流的数据包尽量调度到同一台后端服务器上,这样能避免数据包乱序和保持流量局部性。采用的是负载均衡自带的基于源地址HASH算法。
2,大流的调度需要基于第一点原则之上再根据权重进行调度。
3,小流直接根据负载管理模块计算得到的权重进行调度。
通过上述方式,在调度权重大于或等于预定权重阈值(例如50),则将数据流调度至被选中的后端服务器,若调度权重小于预定权重阈值,则根据大流权重轮询算法重新轮询后端服务器的调度权重,并在数据流属于小流时根据小流轮询算法选取后端服务器,将数据流调度至后端服务器。通过上述方法能够实现大流和小流的高效调度。
其中,作为一种优选的实施例,如图7所示,上述自适应负载均衡调度方法中,步骤S145:根据大流权重轮询算法重新轮询后端服务器的调度权重的步骤包括:
S1451:根据大流负载计算公式,重新计算服务器集群中每一后端服务器的调度权重。
S1452:按照该调度权重,将数据流调度至调度权重最大的后端服务器。
本发明实施例提供的技术方案,通过根据大流负载计算公式重新计算服务器集群中每一后端服务器的调度权重,然后将数据流调度至调度权重最大的后端服务器。这样就能够实现数据流的高效调度。
综上,本发明实施例提供的基于流分类的自适应负载均衡调度方法,通过采集流入服务器集群的数据流,根据该数据流的大小对数据流进行分类,将数据流分类为大流和小流,然后采集服务器集群中每一后端服务器的负载信息以及链路状态,在确定数据流属于大流还是小流后,根据对应的大流负载计算公式或小流负载计算公式,使用上述负载信息和后端服务器的链路状态就能够分别计算得到服务器集群中每一后端服务器的调度权重,再使用大小流权重轮询算法,根据所述调度权重选择需要调度所述数据流的后端服务器,因为将数量划分为大流和小流,针对不同类型对应的调度权重选择后端服务器,这样就能够减小后端服务器的压力,高效处理大流和小流,降低数据包乱序的风险,从而解决现有技术中数据包乱序,后端服务器压力过大,难以高效处理大流和小流的问题。
另外,基于上述方法实施例的同一构思,本发明实施例还提供了基于流分类的自适应负载均衡调度系统,用于实现本发明的上述方法,由于该系统实施例解决问题的原理与方法相似,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参见图9,图9为本发明实施例提供的一种基于流分类的自适应负载均衡调度系统的结构示意图。如图9所示,该自适应负载均衡调度系统包括:
数据流采集模块110,用于采集流入服务器集群的数据流;
数据流分类模块120,用于根据数据流的大小将数据流分类为大流或小流;
负载信息采集模块130,用于采集服务器集群中每一后端服务器的负载信息;
调度权重计算模块140,用于根据大流负载计算公式或小流负载计算公式,使用负载信息和后端服务器的链路状态,分别计算服务器集群中每一后端服务器的调度权重;
数据流调度模块150,用于使用大小流权重轮询算法,根据调度权重选择需要调度数据流的后端服务器。
作为一种优选的实施例,如图10所示,上述自适应负载均衡调度系统中,负载信息采集模块130包括:
系统负载获取子模块131,用于获取每一后端服务器的系统负载;
状态信息同步子模块132,用于同步后端服务器上应用的状态信息;
应用负载提取子模块133,用于从状态信息中提取后端服务器上的应用负载;
负载归一化处理子模块134,用于对系统负载和应用负载进行归一化处理,得到后端服务器的负载信息;
负载上报子模块135,用于将负载信息上报至负载均衡器。
作为一种优选的实施例,调度权重计算模块140,具体用于根据大流负载计算公式:大流负载=α1应用负载+α2系统负载+α3(RTT*ECN),计算后端服务器的调度权重,其中,α1为应用负载的权重,α2为系统负载的权重,α3为链路状态的权重,RTT为数据包的往返时延,ECN为链路的拥塞情况;根据小流负载计算公式:小流负载=α4应用负载+α5系统负载+α6(RTT*ECN),计算后端服务器的调度权重,其中,α4为应用负载的权重,α5为系统负载的权重,α6为链路状态的权重;对大流负载或小流负载进行归一化处理,根据调度权重与负载对应关系,计算每一后端服务器的调度权重,其中,调度权重与负载成反比。
作为一种优选的实施例,如图11所示,上述自适应负载均衡调度系统中,数据流调度模块150包括:
类型判断子模块151,用于判断数据流属于大流还是小流;
第一后端服务器选取子模块152,用于若判定数据流属于大流,则根据源地址hash算法选取后端服务器;
调度权重判断子模块153,用于判断被选中的后端服务器的调度权重是否大于或等于预定权重阈值;
第一数据流调度子模块154,用于若被选中的后端服务器的调度权重大于或等于预定权重阈值时,将数据流调度至被选中的后端服务器;
调度权重轮询子模块155,用于若被选中的后端服务器的调度权重小于预定权重阈值时,根据大流权重轮询算法重新轮询后端服务器的调度权重;
第二后端服务器选取子模块156,用于若数据流属于小流,则根据小流权重轮询算法选取后端服务器;
第二数据流调度子模块157,用于将数据流调度至后端服务器。
其中,调度权重轮询子模块155,具体用于根据大流负载计算公式,重新计算服务器集群中每一后端服务器的调度权重;将数据流调度至调度权重最大的后端服务器。
综上,本发明实施例提供的基于流分类的自适应负载均衡调度系统,通过采集流入服务器集群的数据流,根据该数据流的大小对数据流进行分类,将数据流分类为大流和小流,然后采集服务器集群中每一后端服务器的负载信息以及链路状态,在确定数据流属于大流还是小流后,根据对应的大流负载计算公式或小流负载计算公式,使用上述负载信息和后端服务器的链路状态就能够分别计算得到服务器集群中每一后端服务器的调度权重,再使用大小流权重轮询算法,根据所述调度权重选择需要调度所述数据流的后端服务器,因为将数量划分为大流和小流,针对不同类型对应的调度权重选择后端服务器,这样就能够减小后端服务器的压力,高效处理大流和小流,降低数据包乱序的风险,从而解决现有技术中数据包乱序,后端服务器压力过大,难以高效处理大流和小流的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于流分类的自适应负载均衡调度方法,其特征在于,包括:
采集流入服务器集群的数据流,根据所述数据流的大小将所述数据流分类为大流或小流;
采集所述服务器集群中每一后端服务器的负载信息;
根据大流负载计算公式或小流负载计算公式,使用所述负载信息和后端服务器的链路状态,分别计算所述服务器集群中每一后端服务器的调度权重;
使用大小流权重轮询算法,根据所述调度权重选择需要调度所述数据流的后端服务器。
2.根据权利要求1所述的自适应负载均衡调度方法,其特征在于,所述根据所述数据流的大小将所述数据流分类为大流或小流的步骤,包括:
实时采集流入所述服务器集群的数据包;
对采集的每一数据包进行特征提取,得到每一数据包分别对应的数据包特征;
将所述数据包特征输入至流分类器,根据所述数据包特征对所述数据包对应的数据流进行分类,将所述数据流划分为大流或小流。
3.根据权利要求1所述的自适应负载均衡调度方法,其特征在于,所述根据所述数据流的大小将所述数据流分类为大流或小流的步骤,包括:
实时采集流入所述服务器集群的数据包;
分别提取每一数据包对应的五元组;
根据所述五元组判断所述数据包所属的数据流;
按照所述数据流对应的数据包数量,将所述数据流划分为大流或小流。
4.根据权利要求1所述的自适应负载均衡调度方法,其特征在于,所述采集所述服务器集群中每一后端服务器的负载信息的步骤,包括:
获取所述每一后端服务器的系统负载;
同步所述后端服务器上应用的状态信息,从所述状态信息中提取所述后端服务器上的应用负载;
对所述系统负载和应用负载进行归一化处理,得到所述后端服务器的负载信息;
将所述负载信息上报至负载均衡器。
5.根据权利要求1所述的自适应负载均衡调度方法,其特征在于,所述根据大流负载计算公式或小流负载计算公式,使用所述负载信息和后端服务器的链路状态,分别计算所述服务器集群中每一后端服务器的调度权重的步骤,包括:
根据大流负载计算公式:大流负载=α1应用负载+α2系统负载+α3(RTT*ECN),计算所述后端服务器的调度权重,其中,α1为所述应用负载的权重,α2为所述系统负载的权重,α3为所述链路状态的权重,RTT为数据包的往返时延,ECN为链路的拥塞情况;
根据小流负载计算公式:小流负载=α4应用负载+α5系统负载+α6(RTT*ECN),计算所述后端服务器的调度权重,其中,α4为所述应用负载的权重,α5为所述系统负载的权重,α6为所述链路状态的权重;
对所述大流负载或小流负载进行归一化处理,根据调度权重与负载对应关系,计算所述每一后端服务器的调度权重,其中,所述调度权重与所述负载成反比。
6.根据权利要求1所述的自适应负载均衡调度方法,其特征在于,使用大小流权重轮询算法,根据所述调度权重选择需要调度所述数据流的后端服务器的步骤,包括:
判断所述数据流属于大流还是小流;
若所述数据流属于大流,则根据源地址hash算法选取后端服务器;
判断被选中的后端服务器的调度权重是否大于或等于预定权重阈值;
若被选中的所述后端服务器的调度权重大于或等于预定权重阈值,则将所述数据流调度至所述被选中的后端服务器;
若被选中的所述后端服务器的调度权重小于所述预定权重阈值,则根据大流权重轮询算法重新轮询后端服务器的调度权重;
若所述数据流属于小流,则根据小流权重轮询算法选取后端服务器;
将所述数据流调度至所述后端服务器。
7.根据权利要求6所述的自适应负载均衡调度方法,其特征在于,所述根据大流权重轮询算法重新轮询后端服务器的调度权重的步骤,包括:
根据所述大流负载计算公式,重新计算所述服务器集群中每一后端服务器的调度权重;
将所述数据流调度至调度权重最大的后端服务器。
8.一种基于流分类的自适应负载均衡调度系统,其特征在于,包括:
数据流采集模块,用于采集流入服务器集群的数据流;
数据流分类模块,用于根据所述数据流的大小将所述数据流分类为大流或小流;
负载信息采集模块,用于采集所述服务器集群中每一后端服务器的负载信息;
调度权重计算模块,用于根据大流负载计算公式或小流负载计算公式,使用所述负载信息和后端服务器的链路状态,分别计算所述服务器集群中每一后端服务器的调度权重;
数据流调度模块,用于使用大小流权重轮询算法,根据所述调度权重选择需要调度所述数据流的后端服务器。
9.根据权利要求8所述的自适应负载均衡调度系统,其特征在于,所述负载信息采集模块,包括:
系统负载获取子模块,用于获取所述每一后端服务器的系统负载;
状态信息同步子模块,用于同步所述后端服务器上应用的状态信息;
应用负载提取子模块,用于从所述状态信息中提取所述后端服务器上的应用负载;
负载归一化处理子模块,用于对所述系统负载和应用负载进行归一化处理,得到所述后端服务器的负载信息;
负载上报子模块,用于将所述负载信息上报至负载均衡器。
10.根据权利要求8所述的自适应负载均衡调度系统,其特征在于,所述数据流调度模块,包括:
类型判断子模块,用于判断所述数据流属于大流还是小流;
第一后端服务器选取子模块,用于若判定所述数据流属于大流,则根据源地址hash算法选取后端服务器;
调度权重判断子模块,用于判断被选中的后端服务器的调度权重是否大于或等于预定权重阈值;
第一数据流调度子模块,用于若被选中的所述后端服务器的调度权重大于或等于预定权重阈值时,将所述数据流调度至所述被选中的后端服务器;
调度权重轮询子模块,用于若被选中的所述后端服务器的调度权重小于所述预定权重阈值时,根据大流权重轮询算法重新轮询后端服务器的调度权重;
第二后端服务器选取子模块,用于若所述数据流属于小流,则根据小流权重轮询算法选取后端服务器;
第二数据流调度子模块,用于将所述数据流调度至所述后端服务器。
CN202310418257.8A 2023-04-19 2023-04-19 一种基于流分类的自适应负载均衡调度方法和系统 Active CN116489099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310418257.8A CN116489099B (zh) 2023-04-19 2023-04-19 一种基于流分类的自适应负载均衡调度方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310418257.8A CN116489099B (zh) 2023-04-19 2023-04-19 一种基于流分类的自适应负载均衡调度方法和系统

Publications (2)

Publication Number Publication Date
CN116489099A true CN116489099A (zh) 2023-07-25
CN116489099B CN116489099B (zh) 2023-12-05

Family

ID=87211315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310418257.8A Active CN116489099B (zh) 2023-04-19 2023-04-19 一种基于流分类的自适应负载均衡调度方法和系统

Country Status (1)

Country Link
CN (1) CN116489099B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800352A (zh) * 2020-06-30 2020-10-20 中国联合网络通信集团有限公司 基于负载均衡的服务功能链部署方法和存储介质
US20220006748A1 (en) * 2020-07-03 2022-01-06 Vmware, Inc. Network resource selection for flows using flow classification
CN113938488A (zh) * 2021-09-24 2022-01-14 浙江理工大学 一种基于动静态加权轮询的负载均衡方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800352A (zh) * 2020-06-30 2020-10-20 中国联合网络通信集团有限公司 基于负载均衡的服务功能链部署方法和存储介质
US20220006748A1 (en) * 2020-07-03 2022-01-06 Vmware, Inc. Network resource selection for flows using flow classification
CN113938488A (zh) * 2021-09-24 2022-01-14 浙江理工大学 一种基于动静态加权轮询的负载均衡方法

Also Published As

Publication number Publication date
CN116489099B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
JP6746087B2 (ja) センサネットワークシステム
CN111726415B (zh) 一种基于负反馈机制的tcp长连接负载均衡调度方法及系统
WO2021012663A1 (zh) 一种访问日志的处理方法及装置
US8149846B2 (en) Data processing system and method
US20140201332A1 (en) Computer system
EP3955550A1 (en) Flow-based management of shared buffer resources
FR2839835A1 (fr) Routeur et procede de classification de paquets ip pour la mise en oeuvre dudit routeur
CN108446179B (zh) 基于负载均衡机制的权重优先Task任务调度方法
CN105516360A (zh) 一种计算机的负载均衡方法及装置
CN108062499A (zh) 一种人脸识别的方法、系统及平台
CN109905329B (zh) 一种虚拟化环境下任务类型感知的流队列自适应管理方法
EP2923479A1 (en) Method and apparatus for controlling utilization in a horizontally scaled software application
US8929213B2 (en) Buffer occupancy based random sampling for congestion management
CN111432247B (zh) 流量调度方法、装置、服务器及存储介质
CN109729017B (zh) 一种基于dpi预测的负载均衡方法
CN112367276B (zh) 基于网络流量优先级的网络资源动态自适应方法及系统
CN106550049B (zh) 一种中间件部署方法、装置及系统
US20170048352A1 (en) Computer-readable recording medium, distributed processing method, and distributed processing device
CN109510834B (zh) 一种安全策略下发方法及装置
CN116668380A (zh) 汇聚分流器设备的报文处理方法及装置
CN106131227A (zh) 负载平衡方法、元数据服务器系统及负载平衡系统
CN116489099B (zh) 一种基于流分类的自适应负载均衡调度方法和系统
US7869366B1 (en) Application-aware rate control
CN106372171A (zh) 监控平台实时数据处理方法
WO2015196940A1 (zh) 一种流处理方法、装置及系统

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086

Patentee after: Beijing Zhiling Haina Technology Co.,Ltd.

Country or region after: China

Address before: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086

Patentee before: Beijing zhilinghaina Technology Co.,Ltd.

Country or region before: China