APP下载

一种基于集群的动态负载均衡算法研究

2021-08-20吴俊鹏刘晓东

电子设计工程 2021年16期
关键词:性能指标比率集群

吴俊鹏,刘晓东

(1.武汉邮电科学研究院,湖北武汉 430070;2.武汉虹旭信息技术有限责任公司,湖北武汉 430070)

服务器集群可以通过负载均衡算法将任务分配到集群的各服务器中,从而获得很高的计算速度[1]。传统的负载均衡算法中通常将服务器各项性能指标权重与服务器加权值设为定值[2-3],然而在不同时刻各性能指标对服务器性能的影响力度都在变化,导致对服务器当前状态造成误判。为了解决上述问题,需合理利用负载资源,文中提出了一种按周期动态更新服务器各项性能指标权重与服务器加权值的算法,经实验验证,该算法可以更好地实现服务器集群的负载均衡。

1 负载均衡及其常见算法介绍

1.1 负载均衡简介

负载均衡就是将工作负载分配到多个服务器上进行处理,从而避免部分服务器压力过大,其在高并发与高可用的网络基础架构中扮演着重要的角色[4-6]。通过使用负载均衡可以提高集群处理任务的能力。

1.2 负载均衡常见算法简介

常见的负载均衡算法包括随机法、轮询调度算法、比率算法、优先权调度算法、最小连接数调度算法、最快响应时间算法等[7]。

随机算法会把任务随机分配给一台服务器,这是最简单的一种负载均衡算法[8];轮询调度算法指的是将任务按照顺序依次循环发往第一个服务器到最后一个服务器,是一种较为简单的负载均衡算法;比率算法指的是根椐固定比例给服务器分配任务,这个比例由给每个服务器分配的加权值决定[9],服务器的加权值可以人为分配;优先权调度算法会根据各服务器权重分配任务,服务器分配到的任务数的多少跟自身权重的大小成正比,服务器权重可以根据服务器性能来制定并修改;最小连接数调度算法会将任务发送到已有连接数最小的服务器上[10];最快响应时间算法会将任务发送到响应时间最短的服务器上[11]。

2 基于集群的一种动态负载均衡算法

2.1 算法思路

一个服务器集群由多台服务器组成,控制中心要通过负载均衡算法来合理分配任务以实现集群的负载均衡,好的负载均衡算法能够极大地提升服务器集群的工作效率。文中算法会定期更新服务器各项性能指标权重,并计算出剩余负载率,然后,将剩余负载率与所设阈值进行对比从而修正服务器的加权值,控制中心根据各服务器加权值的大小分配任务[12-14]。

2.2 服务器各指标定义

首先,应该明确如何给一个服务器进行状态评估[15-16],文中从CPU 频率、磁盘I/O 速率、内存大小、网络带宽4 个性能指标来综合评价服务器状态,CPU频率决定计算机的运行速度,磁盘I/O 速率反应每秒输入输出量,内存大小反应服务器缓存性能,网络带宽反应服务器能容纳数据量的大小。假设一个服务器集群an由n台服务器组成,an={ }a1,a2,…,an,第i台服务器的固有负载能力为:

2.3 服务器各性能性能指标权重更新

在以往的负载均衡算法中服务器各项性能指标权重都是固定的,这样可能会出现服务器单项性能指标已处于较大压力的状态,但其余性能指标仍是正常状态的情况,若用以往的算法对处于该状况的服务器进行判断,则该服务器可能仍处于正常状态,但其实该服务器已处于过载状态。为了解决这个问题应定期升高或降低服务器各项性能指标权重[17],这样有助于对服务器当前状态进行判断。文中引入了一个更新权重的标准,该标准可以通过比较单个服务器各性能指标的当前占用率和整个服务器集群中各性能指标的当前占用率的情况,来调整单个服务器各性能指标所占权重。首先计算当前集群中服务器各性能指标占用率均值:

根据服务器各项性能指标的新权值可以更新剩余负载率,在固定周期更新一次各指标权值。

2.4 服务器加权值计算

Wi动态调整公式如式(11)所示。

其中,A的作用是放大服务器加权值减小的效果,根据服务器加权值初始值大小可进行相应修改。

2.5 任务分配

当有任务到来时,控制中心会根据各服务器加权值的大小来分配任务,控制中心将一个任务分配到第i台服务器的概率为:

根据控制中心将每个任务分配到各台服务器的概率大小可以得知服务器概率区间如图1 所示。

图1 服务器概率区间

当任务到来时,控制中心会生成一个0 到1 之间的数字,并通过该数字在服务器概率区间的位置决定该任务的分配。

2.6 算法流程

算法流程如图2 所示。

图2 算法流程

3 实验结果及分析

1)在不同任务数的情况下,对比率法、最小连接数法以及文中算法的任务完成总时间进行测量,结果如图3 所示。

图3 3种算法的任务完成总时间对比

通过观察对比可以看出,在任务数较少的时候3 种算法的任务完成总时间相差较小,随着任务数的增多,比率法的劣势就逐渐体现出来了。文中算法与最小连接数法在任务数小于800 时任务完成总时间差距不大,且文中算法略优于最小连接数法,当任务数大于800 后,二者任务完成总时间的差距开始逐渐加大。

2)在不同任务数的情况下对比率法、最小连接数法以及文中算法的吞吐率(任务数/秒)进行测量,结果如图4 所示。

图4 3种算法的吞吐率对比

通过观察对比可以看出,比率法的吞吐率一直处于稳定增长状态,且在任务数达到800 之后增长趋势变缓。但与其他两种算法的吞吐率相比,比率法的吞吐率始终小于其他两种算法且差值较大;最小连接数法与文中算法的吞吐率一直在一个范围内波动,但文中算法的吞吐率始终优于最小连接数法。

4 结论

文中算法通过增加动态更新服务器各项性能指标权重与服务器加权值,修改了传统负载均衡算法,通过对比率法、最小连接数法与文中算法在任务完成总时间及吞吐率两方面数据进行对比可以看出,文中算法更好地提升了集群负载程度,缩短了任务完成时间。

猜你喜欢

性能指标比率集群
一类具有时滞及反馈控制的非自治非线性比率依赖食物链模型
沥青胶结料基本高温性能指标相关性研究
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
储热水箱分层性能指标的研究进展
WebGIS关键性能指标测试技术研究
一种适用于微弱信号的新颖双峰值比率捕获策略
磁共振成像仪主磁场计量性能指标的选择