CN112835698A - 一种基于异构集群的请求分类处理的动态负载均衡方法 - Google Patents
一种基于异构集群的请求分类处理的动态负载均衡方法 Download PDFInfo
- Publication number
- CN112835698A CN112835698A CN202110179041.1A CN202110179041A CN112835698A CN 112835698 A CN112835698 A CN 112835698A CN 202110179041 A CN202110179041 A CN 202110179041A CN 112835698 A CN112835698 A CN 112835698A
- Authority
- CN
- China
- Prior art keywords
- node
- load
- static
- request
- dynamic
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 title claims abstract description 33
- 230000003068 static effect Effects 0.000 claims abstract description 80
- 238000004422 calculation algorithm Methods 0.000 claims description 47
- 230000006870 function Effects 0.000 claims description 37
- 238000005259 measurement Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 15
- 238000005457 optimization Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 7
- 238000007635 classification algorithm Methods 0.000 claims description 5
- 238000002474 experimental method Methods 0.000 claims description 5
- 238000009530 blood pressure measurement Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000007334 memory performance Effects 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 238000001308 synthesis method Methods 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 2
- 238000005303 weighing Methods 0.000 claims 1
- 238000013210 evaluation model Methods 0.000 abstract description 2
- 238000013468 resource allocation Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于异构集群的请求分类处理的动态负载均衡方法,通过历史周期数据和当前周期的数据准确评估下一周期内异构集群各节点性能,由节点性能和请求类型对请求做均衡调度。在优化传统负载均衡策略在异构集群场景下容易出现负载不均、资源利用率低的问题同时,建立混合动/静请求的负载动态模型。对于静态资源的请求,根据其资源消耗特点,构建静态负载模型,准确计算节点静态负载状况;对于动态资源请求,使用基于周期性的性能评估模型计算各节点分配动/静资源后的相关数据,预测下一周期各个节点的负载率,最终算出每个节点的分配权重并根据此权重对动态请求进行分配,最终解决的集群局部负载过高问题。
Description
技术领域
本发明属于服务器负载均衡技术领域,尤其涉及基于对异构web服务器集群请求的动态调度技术优化的负载方法。
背景技术
如今互联网通信技术不断发展,我国已建成全球最大规模光纤和移动通信网络,通光纤和4G比例均超过98%。同时,各种网络应用也降低了互联网使用门槛。截至2020年3月,我国网民规模为9.04亿。因此互联网用户的日活跃量也非常巨大,从而给服务器带来了巨大的压力。面对此问题很多企业都选择通过集群技术解决此问题。集群技术是一种将多台服务器协同工作、统一对外提供服务的技术,对外界透明,在用户看来与访问单台服务器没有区别。通过集群可以解决单一服务器遇到大量请求时的性能限制问题。其中负载均衡是实现集群的关键技术。负载均衡技术是一种在计算机集群、网络、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化的资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。负载均衡服务通常是基于物理设备的负载均衡器或专用负载均衡软件或协议来完成。主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题,从而提升整体吞吐量和响应时间。常用的负载均衡服务器如硬件负载服务器F5,以及软负载Nginx、LVS等等。
从算法角度来说负载均衡的实现技术可以分为静态负载均衡和动态负载均衡。
静态负载均衡算法的优点是简单,但是由于不考虑服务器节点的性能以及当前负载状态,长久运行易出现负载不均。代表算法有轮训算法、一致性哈希算法等。
轮训算法会按一定的顺序逐个将请求转发到各服务器中。如果集群服务器性能相同,其资源利用率也会非常高。但是实际环境中异构集群十分普遍,且服务器在运行过程中性能也实时变化。这种情况下算法均衡性不佳,集群性能利用率低。一致性哈希算法(Consistent Hashing)通过设计哈希函数计算虚拟哈希环空间,将集群中服务器节点通过哈希函数映射到环上等。对用户请求通过哈希函数计算其键值,在哈希环中按顺时针方向找到第一个服务器节点,并将请求分配给该服务器,如下图所示。该算法在服务器节点较少时,会造成负载倾斜。
动态算法可以实时或周期性获取服务器状况,自适应调整请求到集群服务器的顺序,从而提高了集群性能和资源利用率。常用算法主要有最小连接数算法、加权最小连接调度算法等。最小连接算法根据服务器的连接数量来将请求交给连接数最少的服务器进行处理,算法虽然动态获取了服务器负载情况,但只关注连接数而没有关注服务器硬件环境等其他因素。加权最小连接算法在初始化时,根据服务器硬件性能计算了相应的权值,运行过程中该算法会将请求转发到当前连接数和权值较小的服务器上。此算法虽然考虑了服务器硬件环境但是在运行过程中仍然只关注连接数,参考点因素单一,运行较久会出现连接数小但服务器资源消耗高的情况。
由上面介绍可以了解到当前常用的负载均衡算法的不足,即静态算法只是在算法层面尽量做到任务的散列,集群性能无法详细获取。动态算法虽然对集群节点进行了考虑,但衡量标准单一,也缺乏一定的客观性。在局部时间内有产生负载不均衡和性能下降的可能。
此外,随着网络通信的普及、用户数量的迅速增加,企业服务器硬件迭代的周期也缩短了。因此服务器集群存在性能异构问题也越来越严峻。传统的负载均衡策略没有考虑到服务器间的性能的差异。目前,主流的负载方法在进行负载均衡时,只根据写入的负载算法进行任务均衡或者以连接数作为评价标准,并没有考虑到服务器存在异构的情况,因此这些负载均衡策略在这种场景下无法发挥集群整体性能。
集群中性能异构主要体现在下面几点:
(1)服务器本身的性能存在差异,例如CPU、内存、I/O性能存在差异,这使得不同服务器应对负载时的承受能力存在差异。
(2)服务器在不同时期的性能有所不同,即使可以评估出服务器硬件上的性能指标,但是如果遇到像网络状况发生变化、系统中其他应用占据了CPU或内存资源等情况,都会使得同一台服务器在不同的时间点表现出不同的性能特性。
(3)服务器可能搭建在云平台上,即服务器本身可以是虚拟机.在云计算时代,很多服务器的功能都被迁移到了云端,不同的云平台对于虚拟机资源一般是使用弹性机制,所以要确定一台虚拟机的性能也比较困难。
另一方面,在通常的用户请求中,服务器绝大部分承受的负载都时为用户提供静态资源和动态资源时产生的负载量之和,即
Load=Loads+Loadd
动态资源和静态资源在数据结构和存储上具有非常大的区别,相关资源的请求在业务处理上也大不相同。由于其对请求处理的特点不用,如果不加以区分对待,后端集群的性能和资源利用率就达不到最佳状态。
在逻辑上将http请求分为静态请求和动态请求,静态请求获取静态资源,如图片、js、css等;动态请求获取动态资源,如元数据、参数计算结果等。下面两图分别为未区分动/静请求的单节点和异构集群在一段时间内处理用户请求的时序图。其中,黄实线表示处理动态请求消耗的时间,绿实线表示获取静态资源消耗的时间。对图1来说服务器在t1时刻接收了Xd个动态请求和Xs个静态请求,在t2时刻接收了X`d个动态请求和X`s个静态请求。
因为响应动/静请求所做的逻辑处理不同因此响应时间就不同。动态请求响应时间常与业务逻辑、请求数据量等因素相关,静态请求响应时间常与静态资源大小,存储位置(内存,外存)等因素相关。如果不分类考虑各种请求易产生集群局部负载过高问题,影响集群性能。
服务器在任何时刻的负载水平由新接收的任务和之前未处理完任务的负载量累积而成,而静态资源访问具有随机性,且资源文件大小与动态请求处理逻辑计算量不同导致服务器完成负载量处理的时间不同。因此,服务器应该对静/动态请求区分处理再综合计算负载量。若不区分静/动请求的负载均衡就很难避免集群局部高负载的问题。如图2所示,当动/静态请求混合处理的请求下,整个系统不区分请求类型,在t3时刻,集中服务器节点1处理的请求远大于服务器节点n。
发明内容
本发明提出了一种基于异构集群下请求分类处理的动态负载均衡方法,以解决如下问题:
(1)传统静态算法只是在算法层面尽量做到任务的散列,集群性能无法详细获取,而动态算法虽然对集群节点进行了考虑,但衡量标准单一,且在局部时间内有产生负载不均以及性能下降的问题。
(2)集群中各服务器节点性能存在差异,使得不同服务器应对负载时的承受能力存在差异;运行时,服务器在不同时期的性能有所不同。如瞬时并发流量较大时,同一台服务器在性能特性变化巨大。
(3)对静态资源进行分类存储,建立请求-节点映射表,提高缓存命中率,降低静态资源响应时间。
(4)动态资源和静态资源在数据结构和存储上具有非常大的区别,相关资源的请求在业务处理上也大不相同。若不加以区分对待,后端集群的性能和资源利用率就达不到最佳状态。
本发明解决上述技术问题的技术方案包括以下步骤:一种基于异构集群的请求分类处理的动态负载均衡方法,该方法包括如下步骤:
步骤1、全面考虑影响服务器性能因素,提出一种性能衡量模型。
步骤2、基于性能衡量模型函数计算各节点在异构集群中的性能比,并在系统运行前初始化各节点负载权重。
步骤3、基于步骤1和步骤2进行性能优化,提出一种可适应动/静态请求的负载均衡算法模型。即针对不同资源类型的请求,处理方式不同的特点,逻辑上将请求分为动态类型和静态类型,从而使算法模型在系统在运行过程中可对动/静态请求做分类处理。
步骤4、在步骤3提出的分类算法模型中,针对静态类型请求做缓存优化。
步骤5、到步骤4为止,若每次收集、上传各节点资源信息频繁,节点的可分配权值在修改前后将不会有较大变化且实时收集、上报负载信息,集群性能也会有较多消耗;若间隔过长,又易造成可分配权值不准,导致负载不均。故设计动态反馈周期。
作为优选,步骤1具体包括以下步骤:
步骤1.1、针对不同网络应用对服务器资源的使用情况进行分析,找出最能反映服务器的繁忙程度的指标。
作为优选方案,步骤1.1所述的指标包括CPU性能、内存性能、磁盘IO性能、网络带宽和请求连接数。
步骤1.2、并利用线性加权函数对这些指标进行综合,从而得到评价服务器节点的性能衡量模型。
步骤1.3、采用模糊集理论中提到的乘积平均值的加权综合法来衡量服务器节点当前状况,进而修改1.2中的性能衡量模型,使其全面、客观的描述各资源对服务器衡量的结果的影响。
作为优选方案,步骤1.3所述的衡量函数,具体为:
W=1-(1-λ1C)*(1-λ2M)*(1-λ3D)*(1-λ4B)*(1-λ5Co),
λi≥0,且0≤(1-λiXi)≤1。
其中,W表示服务器节点的衡量结果,C,M,D,B,Co分别表示CPU、内存、磁盘I/O、网络带宽,请求连接数的相关数据。衡量函数根据需求可以表示成多种形式。如当做使用率,则W表示当前服务器节点的负载率;当做最大处理能力,则W表示当前服务器节点的最大负载量。λ1-λ5表示各指标对服务器衡量的影响程度系数。
作为优选,步骤2具体包括以下步骤:
步骤2.1、计算各指标在集群中的总性能。
为优选方案,步骤2.1得到的各指标的总性能的函数式如下:
其中,Pc、Pm、Pd、Pb、Pco代表整个集群在CPU、内存、磁盘I/O、网络带宽以及集群总连接数,ci、mi、d、bi、coi分别表示第i个服务器节点在CPU、内存、磁盘I/O、网络带宽性能以及请求连接数。
步骤2.2、基于步骤1中所述的性能衡量模型计算不同性能的节点的在异构集群中性能所占的真实的比重。
作为优选方案,步骤2.2所述的性能比重函数,具体为:
因为WP(i)∈[0,1],为方便写入初始节点初始值乘上一个系数A。于是异构集群中任意节点通过上式求出其在集群运行前的初始权重。
作为优选,通过算法模型使系统在运行过程中对动/静态请求做分类处理。因此步骤3具体包括以下步骤:
步骤3.1、根据请求静态资源所做处理的特点,以及性能衡量模型函数设计静态负载模型,模型函数具体为:
其中,Ws(i)表示集群中第i个节点的静态负载率。 分别表示服务器节点i在静态请求下CUP、内存、磁盘I/O和网络带宽各资源在周期T内的负载情况。α代表当前请求是否命中缓存,如果命中缓存其值为0,否则为1。
步骤3.2、根据请求动态资源所做处理的特点,以及性能衡量模型函数设计动态负载模型,模型函数具体为:
步骤3.3、结合静态模型和动态模型综合计算异构集群中任意节点在运行过程中的实际负载率:
WL(i)=Wd(i)+Ws(i)
步骤3.4、根据负载率计算运行时各节点的权重修正参数:
步骤3.5、由步骤3.4修正参数可动态计算调节权重函数,函数公式具体为:
作为优选,步骤4——基于步骤3提出的分类算法模型,针对静态类型请求做缓存优化。具体包括以下步骤:
步骤4.1、静态资源分类。
步骤4.2、构建静态资源与服务器hash表。
当算法运行时,由于每次收集、上传各节点资源信息频繁,节点的可分配权值在修改前后将不会有较大变化且实时收集、上报负载信息,集群性能也有较多消耗;而间隔过长,又易造成分配权值不准,导致负载不均。故设计动态反馈周期。因此作为优选,步骤5具体包括以下步骤:
步骤5.1、基于上述步骤使系统运行,并设定后端服务i器的近n次的响应时间;
Ti=[ti1,ti1,…,tin]
步骤5.2、基于步骤5.1获取整个集群最近n次的响应时间;
步骤5.3、通过矩阵求得每个服务器节点的平均响应时间以及方差值。
j为响应时间的次数。
步骤5.4、根据以上步骤,以及压测实验制定动态反馈周期表。
D<sub>i</sub> | 0.72 | 1.74 | 3.41 | 5.56 | 12.37 |
T(单位:s) | 9 | 7 | 5 | 3 | 1 |
。
与现有技术相对比,本发明具有以下明显优势:
本发明通过基于动态负载均衡思想,提出一种可适用于异构集群的请求分类处理的负载均衡方法。此方法可随服务器性能变化而周期性获取集群节点性能信息,同时通过对请求资源的不同进行请求分类,因而对动/静态资源请求敏感,针对不同类型的请求选择对应的处理模式,提高响应速度并准确计算相关类型的全局负载状态。
设计请求调度器,通过历史周期数据和当前周期的数据准确评估下一周期内异构集群各节点性能,由节点性能和请求类型对请求做均衡调度,从而充分利用异构集群资源。
在优化传统负载均衡策略在异构集群场景下容易出现负载不均、资源利用率低的问题同时,建立了混合动/静请求的负载动态模型。对于静态资源的请求,根据其资源消耗特点,构建静态负载模型,准确计算节点静态负载状况,同时将同类静态资源分配给同台服务器并建立请求-节点映射关系,提高缓存命中率和响应速度;对于动态资源请求,使用基于周期性的性能评估模型计算各节点分配动/静资源后的相关数据,预测下一周期各个节点的负载率,最终算出每个节点的分配权重并根据此权重对动态请求进行分配,避免使用实时测量数据而造成分配负载的滞后和误差累积导致错误。通过对请求类型分类建模处理并综合计算负载率,最终解决的集群局部负载过高问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图和表作简单地介绍,显而易见地,下面描述中的附图和表仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图和表。
图1为介绍静态负载均衡算法中的带虚拟节点的一致性哈希算法;
图2为单节点下,http对动态资源与静态资源请求时,节点处理请求状态时序图;
图3为异构集群下,http对动态资源与静态资源请求时,集群中各节点处理请求的状态时序图;
图4为本发明提出的动态负载均衡方法的算法流程图;
图5为本发明的实现架构图;
图6为应用本发明作为负载均衡解决方案后与其他方案对比后的平均响应时间折线图,其中黄色曲线CWA为本发明所在折线;
图7为应用本发明作为负载均衡解决方案后与其他方案对比后的并发数折线图,其中黄色曲线CWA为本发明所在折线。
具体实施方式
以下结合部分附图、具体实施方式和实验结果对本发明进一步详细说明。
如图5实现框架所示,在本发明的验证系统中使用nginx作为算法负载均衡服务器,redis作为各节点性能指标数据、节点权重数据的存储器。此外,在负载均衡服务器中分别设计了服务器权值计算模块、修改权重模块、请求分类调度模块,并在集群各服务器节点中设计了数据收集模块。
数据收集模块通过周期性收集所在服务器的数据,给权值计算模块提供分析数据,为保证数据负载均衡器对数据拉取的效率以及持久化和可追溯性,本发明应用redis做各服务器节点的收集装置。权值计算模块基于上文所述的算法函数计算下一周期内本各节点应设置的权重值,修改模块进行权重更新。请求分类调度模块对请求进行分类处理,同时将相关请求调度适合的服务器上。
如图4的算法流程图,表明了本算法实现的整体过程。
最后如图6、7所示为通过jmeter模拟多用户场景的实验对将本发明与加权轮训算法(WRR)以及张尧的一种改进的动态加权算法(DUW)进行比较的结果图,表明了本发明在在响应时间与实际连接数方面的良好效果。
实施方式:
步骤1、全面考虑影响服务器性能因素,提出一种性能衡量模型。
步骤1.1、针对不同网络应用对服务器资源的使用情况进行分析,找出最能反映服务器的繁忙程度的指标。
作为优选方案,步骤1.1所述的指标包括CPU性能、内存性能、磁盘IO性能、网络带宽、请求连接数。
步骤1.2、并利用线性加权函数对这些参数进行综合,从而得到评价服务器节点的性能衡量模型。
步骤1.3、采用模糊集理论中提到的乘积平均值的加权综合法来衡量服务器节点当前状况,进而修改1.2中的性能衡量模型,使其全面、客观的描述各资源对服务器衡量的结果的影响
作为优选方案,步骤1.3所述的衡量函数,具体为:
W=1-(1-λ1C)*(1-λ2M)*(1-λ3D)*(1-λ4B)*(1-λ5Co),
λi≥0,且0≤(1-λiXi)≤1。
其中,W表示服务器节点的衡量结果,C,M,D,B,Co分别表示CPU、内存、磁盘I/O、网络带宽,请求连接数的相关数据。衡量函数根据需求可以表示成多种形式。如当做使用率,则W表示当前服务器节点的负载率;当做最大处理能力,则W表示当前服务器节点的最大负载量。λ1-λ5表示各指标对服务器衡量的影响程度系数。
步骤2、基于性能衡量模型函数计算各节点在异构集群中的性能比,并在系统运行前初始化各节点负载权重。
步骤2.1、计算各指标在集群中的总性能。得到的各指标的总性能的函数式如下:
其中,Pc、Pm、Pd、Pb、Pco代表整个集群在CPU、内存、磁盘I/O、网络带宽以及集群总连接数,ci、mi、d、bi、coi分别表示第i个服务器节点在CPU、内存、磁盘I/O、网络带宽性能以及请求连接数。
步骤2.2、基于步骤1中所述的性能衡量模型计算不同性能的节点的在异构集群中性能所占的真实的比重。得到性能比重函数,具体为:
因为WP(i)∈[0,1],为方便写入初始节点初始值可以乘上一个系数A。于是异构集群中任意节点都可以通过上式求出其在集群运行前的初始权重。
步骤3、基于步骤1和步骤2进行性能优化,提出一种可适应动/静态请求的负载均衡算法模型。即针对不同资源类型的请求,处理方式不同的特点,逻辑上将请求分为动态类型和静态类型,从而使算法模型在系统在运行过程中可对动/静态请求做分类处理。
步骤3.1、根据请求静态资源所做处理的特点,以及性能衡量模型函数设计静态负载模型,模型函数具体为:
其中,Ws(i)表示集群中第i个节点的静态负载率。 分别表示服务器节点i在静态请求下CUP、内存、磁盘I/O和网络带宽各资源在周期T内的负载情况。α代表当前请求是否命中缓存,如果命中缓存其值为0,否则为1。
步骤3.2、根据请求动态资源所做处理的特点,设计动态负载模型,模型函数具体为:
步骤3.3、结合静态模型和动态模型综合计算异构集群中任意节点在运行过程中的实际负载率:
WL(i)=Wd(i)+Ws(i)
步骤3.4、根据负载率计算运行时各节点的权重修正参数:
步骤3.5、由步骤3.4修正参数可动态计算调节权重函数,
当β=1时,当前节点i为资源利用率最高的负载均衡状态。
当0<β<1时,节点i的资源利用率较低,负载较少,可适当提高请求分配的权重。
当β>1时,表示节点i已经超载,需迅速减少请求分配的权重。
据此,可以得到动态调节各服务器节点权重的公式。
步骤4、在步骤3提出的分类算法模型中,针对静态类型请求做缓存优化。
步骤4.1、静态资源分类
在处理静态请求时,通过构建静态资源与服务器节点的hash表,来加速负载均衡器查找当前静态请求所需资源缓存过的服务器的速度。其中,key为当前静态请求所需资源的大小范围的类型,Value为该类型资源所缓存到的服务器的最新记录。
步骤4.2、构建静态资源与服务器hash表
因为静态资源按大小划分类型可划分成较少类型(人为可控),所以hash表占用的内存容量非常小,不会影响负载均衡器对请求处理
表1静态资源与服务器对照表
步骤5、到步骤4为止,若每次收集、上传各节点资源信息频繁,节点的可分配权值在修改前后将不会有较大变化且实时收集、上报负载信息,集群性能也会有较多消耗;若间隔过长,又易造成可分配权值不准,导致负载不均。故设计动态反馈周期。
步骤5.1、基于上述步骤使系统运行,并设定后端服务i器的近n次的响应时间
Ti=[ti1,ti1,…,tin]
步骤5.2、基于步骤5.1获取整个集群最近n次的响应时间
步骤5.3、通过矩阵求得每个服务器节点的平均响应时间以及方差值
j为响应时间的次数。
步骤5.4、根据以上步骤,以及压测实验制定动态反馈周期表,反馈周期T初始值设为10s,并计算出节点对应的响应时间方差Di,根据Di决定下一轮反馈周期T的大小。Di越小表明节点i负载越低,运行越稳定。反之亦然。因此当Di越大,越要向小调节T。反馈周期表由压测实验得出。
当任一后端服务器的方差值低于0.72时,T保持不变,若增大则根据上表对T进行调整。设T最小为1,认为此时集群的负载状况已到达临界状态。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
Claims (7)
1.一种基于异构集群的请求分类处理的动态负载均衡方法,其特征在于:该方法包括如下步骤:
步骤1、全面考虑影响服务器性能因素,提出一种性能衡量模型;
步骤2、基于性能衡量模型函数计算各节点在异构集群中的性能比,并在系统运行前初始化各节点负载权重;
步骤3、基于步骤1和步骤2进行性能优化,提出一种可适应动/静态请求的负载均衡算法模型;针对不同资源类型的请求,处理方式不同的特点,逻辑上将请求分为动态类型和静态类型,从而使算法模型在系统在运行过程中可对动/静态请求做分类处理;
步骤4、在步骤3提出的分类算法模型中,针对静态类型请求做缓存优化;
步骤5、到步骤4为止,若每次收集、上传各节点资源信息频繁,节点的可分配权值在修改前后将不会有大变化且实时收集、上报负载信息,集群性能也会有较多消耗;若间隔过长,又造成可分配权值不准,导致负载不均,故设计动态反馈周期。
2.根据权利要求1所述的一种基于异构集群的请求分类处理的动态负载均衡方法,其特征在于:步骤1具体包括以下步骤:
步骤1.1、针对不同网络应用对服务器资源的使用情况进行分析,找出最能反映服务器的繁忙程度的指标;所述的指标包括CPU性能、内存性能、磁盘IO性能、网络带宽和请求连接数;
步骤1.2、并利用线性加权函数对这些指标进行综合,从而得到评价服务器节点的性能衡量模型;
步骤1.3、采用模糊集理论中提到的乘积平均值的加权综合法来衡量服务器节点当前状况,进而修改1.2中的性能衡量模型,使其全面、客观的描述各资源对服务器衡量的结果的影响。
3.根据权利要求2所述的一种基于异构集群的请求分类处理的动态负载均衡方法,其特征在于:步骤1.3所述的衡量函数,具体为:
W=1-(1-λ1C)*(1-λ2M)*(1-λ3D)*(1-λ4B)*(1-λ5Co),
λi≥0,且0≤(1-λiXi)≤1;
其中,W表示服务器节点的衡量结果,C,M,D,B,Co分别表示CPU、内存、磁盘I/O、网络带宽,请求连接数的相关数据;衡量函数根据需求可以表示成多种形式;如当做使用率,则W表示当前服务器节点的负载率;当做最大处理能力,则W表示当前服务器节点的最大负载量;λ1-λ5表示各指标对服务器衡量的影响程度系数。
4.根据权利要求1所述的一种基于异构集群的请求分类处理的动态负载均衡方法,其特征在于:步骤2具体包括以下步骤:
步骤2.1、计算各指标在集群中的总性能;
步骤2.1得到的各指标的总性能的函数式如下:
其中,Pc、Pm、Pd、Pb、Pco代表整个集群在CPU、内存、磁盘I/O、网络带宽以及集群总连接数,ci、mi、d、bi、coi分别表示第i个服务器节点在CPU、内存、磁盘I/O、网络带宽性能以及请求连接数;
步骤2.2、基于步骤1中所述的性能衡量模型计算不同性能的节点的在异构集群中性能所占的真实的比重;
步骤2.2所述的性能比重函数,具体为:
因为WP(i)∈[0,1],为方便写入初始节点初始值乘上一个系数A;于是异构集群中任意节点通过上式求出其在集群运行前的初始权重。
5.根据权利要求1所述的一种基于异构集群的请求分类处理的动态负载均衡方法,其特征在于:通过算法模型使系统在运行过程中对动/静态请求做分类处理;因此步骤3具体包括以下步骤:
步骤3.1、根据请求静态资源所做处理的特点,以及性能衡量模型函数设计静态负载模型,模型函数具体为:
其中,Ws(i)表示集群中第i个节点的静态负载率; 分别表示服务器节点i在静态请求下CUP、内存、磁盘I/O和网络带宽各资源在周期T内的负载情况;α代表当前请求是否命中缓存,如果命中缓存其值为0,否则为1;
步骤3.2、根据请求动态资源所做处理的特点,以及性能衡量模型函数设计动态负载模型,模型函数具体为:
步骤3.3、结合静态模型和动态模型综合计算异构集群中任意节点在运行过程中的实际负载率:
WL(i)=Wd(i)+Ws(i)
步骤3.4、根据负载率计算运行时各节点的权重修正参数:
步骤3.5、由步骤3.4修正参数可动态计算调节权重函数,函数公式具体为:
6.根据权利要求1所述的一种基于异构集群的请求分类处理的动态负载均衡方法,其特征在于:步骤4——基于步骤3提出的分类算法模型,针对静态类型请求做缓存优化;具体包括以下步骤:
步骤4.1、静态资源分类;
步骤4.2、构建静态资源与服务器hash表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110179041.1A CN112835698B (zh) | 2021-02-09 | 2021-02-09 | 一种基于异构集群的请求分类处理的动态负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110179041.1A CN112835698B (zh) | 2021-02-09 | 2021-02-09 | 一种基于异构集群的请求分类处理的动态负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112835698A true CN112835698A (zh) | 2021-05-25 |
CN112835698B CN112835698B (zh) | 2024-09-20 |
Family
ID=75933201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110179041.1A Active CN112835698B (zh) | 2021-02-09 | 2021-02-09 | 一种基于异构集群的请求分类处理的动态负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835698B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500578A (zh) * | 2021-12-27 | 2022-05-13 | 天翼云科技有限公司 | 分布式存储系统负载均衡调度方法、装置及存储介质 |
CN114567637A (zh) * | 2022-03-01 | 2022-05-31 | 浪潮云信息技术股份公司 | 一种智能设置负载均衡后端服务器权重的方法及系统 |
CN115903638A (zh) * | 2022-11-08 | 2023-04-04 | 广州鲁邦通智能科技有限公司 | 一种基于vpn技术的设备及远程维护plc的方法和系统 |
WO2023066035A1 (zh) * | 2021-10-18 | 2023-04-27 | 阿里巴巴(中国)有限公司 | 资源分配方法以及资源分配装置 |
CN117112123A (zh) * | 2023-02-13 | 2023-11-24 | 深圳市同行者科技有限公司 | 一种基于kubernetes的负载均衡方法和相关设备 |
CN117424900A (zh) * | 2023-10-17 | 2024-01-19 | 国电南瑞科技股份有限公司 | 电力物联网长连接集群管理方法、系统、设备和存储介质 |
WO2024088079A1 (zh) * | 2022-10-24 | 2024-05-02 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及系统 |
CN118567865A (zh) * | 2024-07-31 | 2024-08-30 | 北京英沣特能源技术有限公司 | 基于算力优化的集群数据采集方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378067B1 (en) * | 2014-05-08 | 2016-06-28 | Springpath, Inc. | Automated load balancing across the distributed system of hybrid storage and compute nodes |
CN107426332A (zh) * | 2017-08-10 | 2017-12-01 | 华南理工大学 | 一种web服务器集群的负载均衡方法及系统 |
CN111756646A (zh) * | 2020-07-08 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 网络传输控制方法、装置、计算机设备及存储介质 |
-
2021
- 2021-02-09 CN CN202110179041.1A patent/CN112835698B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378067B1 (en) * | 2014-05-08 | 2016-06-28 | Springpath, Inc. | Automated load balancing across the distributed system of hybrid storage and compute nodes |
CN107426332A (zh) * | 2017-08-10 | 2017-12-01 | 华南理工大学 | 一种web服务器集群的负载均衡方法及系统 |
CN111756646A (zh) * | 2020-07-08 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 网络传输控制方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
申泽星;彭云建;岳喜顺;: "集群服务器在混合请求下的负载均衡优化算法", 计算机工程与应用, no. 18 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023066035A1 (zh) * | 2021-10-18 | 2023-04-27 | 阿里巴巴(中国)有限公司 | 资源分配方法以及资源分配装置 |
CN114500578A (zh) * | 2021-12-27 | 2022-05-13 | 天翼云科技有限公司 | 分布式存储系统负载均衡调度方法、装置及存储介质 |
CN114500578B (zh) * | 2021-12-27 | 2024-06-11 | 天翼云科技有限公司 | 分布式存储系统负载均衡调度方法、装置及存储介质 |
CN114567637A (zh) * | 2022-03-01 | 2022-05-31 | 浪潮云信息技术股份公司 | 一种智能设置负载均衡后端服务器权重的方法及系统 |
WO2024088079A1 (zh) * | 2022-10-24 | 2024-05-02 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及系统 |
CN115903638A (zh) * | 2022-11-08 | 2023-04-04 | 广州鲁邦通智能科技有限公司 | 一种基于vpn技术的设备及远程维护plc的方法和系统 |
CN115903638B (zh) * | 2022-11-08 | 2023-12-08 | 广州鲁邦通智能科技有限公司 | 一种基于vpn技术的设备及远程维护plc的方法和系统 |
CN117112123A (zh) * | 2023-02-13 | 2023-11-24 | 深圳市同行者科技有限公司 | 一种基于kubernetes的负载均衡方法和相关设备 |
CN117424900A (zh) * | 2023-10-17 | 2024-01-19 | 国电南瑞科技股份有限公司 | 电力物联网长连接集群管理方法、系统、设备和存储介质 |
CN118567865A (zh) * | 2024-07-31 | 2024-08-30 | 北京英沣特能源技术有限公司 | 基于算力优化的集群数据采集方法、系统、设备及介质 |
CN118567865B (zh) * | 2024-07-31 | 2024-10-08 | 北京英沣特能源技术有限公司 | 基于算力优化的集群数据采集方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112835698B (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112835698A (zh) | 一种基于异构集群的请求分类处理的动态负载均衡方法 | |
WO2021179462A1 (zh) | 基于改进量子蚁群算法的Spark平台任务调度方法 | |
WO2020206705A1 (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN107196865B (zh) | 一种负载感知的自适应阈值过载迁移方法 | |
CN106790726B (zh) | 一种基于Docker云平台的优先级队列动态反馈负载均衡资源调度方法 | |
CN107832153B (zh) | 一种Hadoop集群资源自适应分配方法 | |
CN109120715A (zh) | 一种云环境下动态负载均衡方法 | |
CN105491138B (zh) | 一种基于负载率分级触发的分布式负载调度方法 | |
CN110933139A (zh) | 一种解决Web服务器高并发的系统及方法 | |
US20120221730A1 (en) | Resource control system and resource control method | |
CN108196935B (zh) | 一种面向云计算的虚拟机节能迁移方法 | |
CN107566535B (zh) | 基于Web地图服务并发访问时序规则的自适应负载均衡方法 | |
CN113515351A (zh) | 一种基于能耗与QoS协同优化的资源调度实现方法 | |
CN115718644A (zh) | 一种面向云数据中心的计算任务跨区迁移方法及系统 | |
CN104375897A (zh) | 基于最小相对负载不均衡度的云计算资源调度方法 | |
CN113822456A (zh) | 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法 | |
Limam et al. | Data replication strategy with satisfaction of availability, performance and tenant budget requirements | |
Li et al. | Cost-aware automatic scaling and workload-aware replica management for edge-cloud environment | |
Li et al. | Intermediate data placement and cache replacement strategy under Spark platform | |
CN111061561A (zh) | 云计算管理平台的全阶段负载分担综合优化方法 | |
CN109783235A (zh) | 一种基于最大熵原理的负载均衡调度方法 | |
CN102339233A (zh) | 云计算集中管理平台 | |
CN111176784A (zh) | 一种基于极限学习机和蚁群系统的虚拟机整合方法 | |
CN113204429A (zh) | 一种数据中心的资源调度方法及系统、调度设备、介质 | |
CN117135131A (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 |