隹Isl^iSls V12021年第02期(总第218期)
基于最优赋权法的负载均衡动态分配算法
邱志腾',杨红雨2,刘洪"
(1.四川大学视觉合成图彩图像技术重点学科实验室;
2.四川大学计算机(软件)学院,四川成都610064)
摘要:在集中服务器均衡负载内置算法运行前指定权值静态评估节点的负载能力,使得负载均衡器不能体现服务器资源动态变化的问题,提出了一种采用最优赋权法对加权轮询算法的权值更新进行改进,通过对后端服务器CPU利用率、内存利用率、磁盘1/0、网络带宽、连接数等性能的建模,再根据最优赋权法动态调整性能指标的权重。能更客观的评价服务器节点的负载情况。通过对照实验结果表明,文章算法在请求响应时间、系统呑吐量等方面有较好的负载均衡效果。关键词:负载均衡;Web集;最优赋权法;权值分配;Nginx
中图分类号:TP368.5文献标识码:B文章编号:2096-9759(2021)02-0067-03
0引言
在信息时代,早年的单机web服务器的配置难以承受海量用户的高并发请求。只有将多台服务器协调起来作为一个集,才能有效分散单台服务器的并发处理压力,同时也能避免某台服务器宕机导致整个系统崩溃的问题。Web集的关键是要使用负载均衡技术叫通过均衡服务器的并发连接,有效使用所有后端集节点。负载均衡技术使得整个服务器集的性能有了明显进步。负载均衡策略在实际的应用主要包括硬件与软件两大方面。釆用软件的方式不需要独立的机器设备,相比于硬件而言,在配置和安装上更为灵活,成本也更低叫LVS和Nginx是比较常见的软件的负载均衡器,LVS工作在OSI模型的传输层,作为请求的转发,没有流量,而Nginx 工作再网络的第七层,可以高效地处理HTTP应用,可使用的场合也多于LVS,因此文中主要研究Nginx的负载均衡。
1Nginx服务器
在同一时间上亿的并发请求同时让Apache服务器处理,那么对于Apache服务器来说将会是一次艰难的挑战。面对这样的问题,Apache后端服务器不但有大量的内存资源的消耗,还会消耗处理器资源,没有充分利用缓存并发请求的快速切换也是一种巨大的损耗。最后造成并发请求明显延迟,服务器不能充分发挥其性能。高性能负载均衡服务器Nginx就是为了解决上述这些问题而诞生的,它解决了Apache后端服务器应对爆炸式并发请求随着访问量的增加性能快速下降的问题。
Nginx是由俄罗斯人开发的一款开源Web服务器,Nginx 拥有抽象程度高,结构化,多种别的模块化,这
种模块化的设置决定了Nginx功能的可扩展性以及可配置性叫还具有占用资源低、处理请求快、可扩展性好、配置灵活、事件驱动的方式处理请求、反向代理和缓存服务等特点。Nginx服务器在实际应用非常广泛,目前国内外的很多企业也都采用Nginx作为集的负载均衡器。
1.1Nginx常见的负载均衡算法
(1)加权轮询:通过对不同集节点初始时设定相应的权值,Nginx内置的负载均衡策略中的加权轮询算法请求的调度时根据配置好的权重实施。优点:加权轮询算法的应用范围广,因为是静态分配权重不会受其他任何因素的影响,能够将各种请求更加合理均衡的分发到各后端服务器结点,算法配置简单,因为不会受到其他参数的影响其运行效率较高,资源损耗相对较低等优点。缺点:没有考虑实时运行状况,导致在高并发量的情况下无法根据服务器实时负载进行动态调整。另外,相同请求的多次访问无法确保前后访问的服务器节点相同,会话以及信息的缓存得不到保持凶o
(2)ip-hash:将IP地址的点分十进制表示方式的前三个字段作为参数传入hash函数,根据hash函数的计算结果来确定请求应该被分配给那台服务器节点,如果IP地址的前三个位置相同,一般就能确定处于同一网段中或相邻的网段。充分利用缓存,相同的请求多次访问后端集结点前后访问的结点相同。优点:ip-hash解决了加权轮询无法保证多次请求时服务节点的统一性问题,动态网页存在的session问题。缺点:
收稿日期:2020-12-20
基金项目:集成CNN的SoC芯片关键技术研究及应用(2020YFG0288)。
作者简介:邱志腾(1994-),男,湖北利川人硕士研究生,单位:视觉合成与图形图像国防重点学科实验室,研究方向为智能信息处理。
[11]陈仁喜周像缺损信息的修复方法研究[D].北京:中国科学
院研究生院(遥感应用研究所),2006:1-139.
[12]魏欣.基于样图的二维纹理合成方法研究[D].河南:河南工
业大学,2011:1-53.
[13]苏良飞.基于样图的约束纹理合成研究[D].浙江:浙江大学,
2008:1-64.
[14]邢颖.基于样图的纹理合成技术研究[D].辽宁:辽宁工程技
术大学,2007:1-68.
[15]郭武.基于K-D树的纹理合成及其应用[D].吉林:吉林大学,
2005:1-75.
[16]刘景.基于样图的二维纹理合成技术研究[D].江苏:河海大
学,2003:1-54.
[17]李应涛,徐丹.木刻版画风格转换的深度学习算法[J].计算
机辅助设计与图形学学报,2020,32(11):1804-1812. [18]Elias Wang,Nicholas Tan.Artistic Style Transfer.
github/eliaszwang.
[19]Cewu Lu,Li Xu,Jiaya Jia.Combining Sketch and Tone for
Pencil Drawing Production.International Symposium on Non-Photorealistic Animation and Rendering(NPAR2012), June,2012:65-73.
[20]赵杨.基于GPU加速的水彩风格实时渲染绘制算法[J].信
息通信.2020,(03):280-282.
67
访问量突增时,根据hash策略可能会导致资源分配不均。
(3)最小连接数:最小连接数算法是通过每台服务器存储目前的已连接的连接数count,通过该变量来实时监控集节点的运行情况,该算法可以动态的反馈服务器节点当前的性能情况,是一个简单的动态动态分配集节点的方案。优点:根据当前节点活跃连接数的不同情况来动态选择服务器请求处理,是负载均衡策略中的一种动态反馈调节方法。缺点:作为一种动态的负载均衡策略,通过单一的连接数进行状态的判定不够稳定与客观。
(4)第三方fair:通过集节点处理请求的时间大小来判断负载情况。服务器负载越轻,响应时间越快,反之,服务器资源消耗严重,响应时间越长。第三方fair负载均衡算法选取响应时间短的服务器来处理请求。优点:第三方fair算法是一种动态负载均衡策略,考虑了服务器节点的实时性和差异性。缺点:单单只考虑响应时间,在网络的实际环境中并不能充分反映服务器当前的负载实际情况叫
通过对Nginx常用的负载均衡策略的优缺点进行分析,得出加权轮询算法是高效的静态算法,经过初始设置权重的大小能某些程度上体现服务器的处理能力,但是仅仅简单的依靠设置初始权重的方式并不能满足复杂的集结构需求。
1.2负载均衡的研究现状
在现有的负载均衡算法研究中,总体上分为静态负载均衡算法和动态负载均衡算法两大类性静态均衡策略不考虑集节点实时工作状况,根据运行前设定的方式对任务实施调度。,如轮询及加权轮询算法等。动态类型是根据后端集节点的负载状态分配任务,如:最小连接数调度策略,因为运行效果通常是动态负载均衡算法优于静态负载均衡,所以当前对研究较多的是动态负载均衡算法。
在文献[7]中提出了一种动态自适应权重轮询随机负载均衡算法,将后端集节点的CPU、磁盘10、网络利用率等经过加权计算得到资源利用率,釆用朴素贝叶斯决策函数计算权重,将其反馈给任务分配服务器。文献[8]提出了一种动态权值分配调度算法,类似文献[7]通过CPU使用率、内存使用率等动态属性评估集结点的负荷情况,通过对动态负载属性与静态负载属性的比值来调整权重。在文献[2]中提出了一种具有实时反馈能力的集节点均衡策略,通过计算集中CPU、内存、10的负荷情况反馈回前端负载收集器,权值计算考虑了响应时间、连接数、默认权值等因素。在文献[4]中提出了负载均衡算法,釆用了爛值法根据评价对象的指标信息来进行权值估算。
文献中提出的负载均衡策略均未充分考虑主客观因素,结合Nginx默认的加权轮询算法,本文对该算法原理进行剖析釆用最优赋权法对该算法进行改进,实现一种可以全面反映负载均衡系统服务器当前性能并能结合主客观因素的权值更新的动态分配算法。
2加权轮询算法的改进
2.1相关参数定义
Nginx集负载均衡需要解决的一个重要问题就是如何正确评估集节点的实时情况和集节的当前剩余性能,评价指标对集负载均衡的连接分配产生较大的影响。通过Web集系统对各种资源的使用情况,从CPU利用率、内存利用率、磁盘1/0、网络带宽、连接数5个方面来评估服务器节点的性能和负载,可以根据服务器节点的实际情况动态更新叫为了方便合理地量化集中每个服务器结点的运行情况,我们需要构造系统的评价函数,可以通过对负载评价指标与该指标的权值进行某种计算。本文釆用线性加权函数评价模型,评价函数如下:
c(sj=入1*5®+也*c ram(s,)+
入3*Cs(Sd+XjCn.XS,)+A s C c<m(S()⑴其中,C®”表示CPU的利用率,J表示内存利用率,C”表示磁盘I/O的利用率,G表示网络带宽的,C®表示当前连接数,=I,心分别对应上述五个指标的权系数,表示表示各个性能指标的权重。
2.2最优赋权法确定权系数
2.2.1层次分析法负载均衡服务器有哪些
层次分析法是联合了定量分析和定性分析的评价决策方法,从Saaty于20世纪80年代提出以来,在实践中得到了广泛应用。它通过它通过设定层次结构模型,构建判断矩阵,进行层次排序及一致性经验等过程来完成评价指标排序叫影响Web集系统负载均衡的因素非常多,比如网络性能、服务器软硬件、网络服务的类型,这些因素的重要性不尽相同。使用AHP方法可以科学有效地设定各要素的相互关系,并得出权重。根据影响负载均衡策略的参数间的彼此影响以及从属关系将权重按照不同层次的关系组合,形成多层次的复合结构模型,使最低层重要权值的设定对上层权重的递进影响的关系。
(1)构造判断矩阵。判断矩阵中的元素表示的是同一层次指标之间的相对重要性。
A=(a y)nxn>at]=l/a“:(2)
(2)—致性检验。判断矩阵是否满足一致性要求,用指标CR刻画。当CR<0.1时,判断矩阵满足一致性要求,标准化后的特征向量可以作为权向量。其计算公式为:
CR=C1/RI(3)
式中,CI为一致性指标:刃为平均随机一致性指标,其取值标准如表1所示。
表1平均随机一致性指标赋值参数表
n3456789
R10.580.9 1.12 1.24 1.32 1.41 1.45
(3)权重计算。层次分析法釆用公式CX=j,求出C的最大特征值心及对应的特征向量X=(X“X2,X”X”X,)将定性因素关系向定量化进行了转换。并对权重进行归一化处理:儿=击和=(1,2,3,4,5).
2.2.2爛值法
爛值法一般用来衡量数据间有效信息的程度。某个因素的爛值越大,表示能提供的信息越少,相应的权重也就越小,反之,指标权重就越大。根据指标提供的有效信息量,可以客观得出指标权重,使评估结果更科学。
(1)首先对数据进行归一化处理:
(2)计算第j项指标下第i方案指标值的比重A:
P厂?1,2,3,4,5)(5)
乙i=l
68
(3)计算第/项指标的爛值引
n
k^pijlnpij(6)
i=l
其中it=l/ln(n),满足e&0
(4)计算信息爛冗余度:
gj=1-ej(7)
(5)计算各项指标权重:
吹环⑻
(6)计算综合得分:
s:=工WjPij(9)
;=i
层次分析法主要是根据评价者的主观经验来确定权重,爛值法则是依据评价对象的指标信息来确定权重,将主客观权重相结合可以得到组合权重,使属性赋权达到主观与客观的统一。
设主观权向量为"1=[W11,W21,W31,W41,W51],客观权向量为“2=凹21,W22,W32,W42.W52],则组合权向量为:
w c=0x w l+e2w2(10)式中,叭、込为组合系数。
3实验环境搭建与测试
为了测试本文提出的算法的负载均衡能力,选择在云服务器环境中搭建的Web集系统作为测试环境,该集由5台云主机节点组成,每台云主机配置为CPU2.5GHz,8G内存,操作系统均为CentOS6,1台主机作为Nginx负载均衡器。测试工具选用Httperf和webbencho Httperf能够根据不同的负载,记录性能结果并输出在终端。而webbench是一款网站压力检测软件,能够测试出不同硬件环境下或者不同硬件环境下服务器的实际运行情况。
实验中通过使用webbench分别模拟200,400,-,2000个并发请求,组合权向量中主观权系数取0.4,客观权系数取值0.6,每次运行10min,分别对本文提出的改进动态加权轮询算法、默认加权轮询算法,ip-hash算法进行对比。得到的统计数据如图1和图2所示。
SUV
!®-
一
苗
他9
57
升
并发请求数
ip4iash*法加权轮询尊法—改进加权轮询鼻法
图1响应时间比较
从图1可以看出,三种算法在并发量较低的时候,响应时间差距不大,但当超过600的并发量时,测试算法的响应时间都迅速增大并且随着并发请求的增加而增,round_robin的响应时间要小于ip-hash算法。本文提出的改进加权義询策略经过实时对各指标权值的更新,让负载的整体评估效果更精确,能高效将请求分发到合适的负载节点,大并发的请求负载更加合理,并且随着任务数的增加,其优势会越来越明显。
m
y
)
•
報
京
100
200400600800100012001400160018002000
并发请求数
t-Ip-hashW法加权轮询算法*改进加权轮询鼻法
图2吞吐量比较
从图2可以看出,各种测试算法在任务数在1400左右,达到并发量的最大值。此后,随着并发数持续提高反而会导致吞吐量的减少,但改进的动态加权轮询策略下降的较为平缓,本文提出的改进加权轮询算法的吞吐量从整体上看要优于round robin算法与ip-hash算法。
从更验结果可以得出,经过组合CPU、"O、内存、连接数等集实时性能的权重,对于集节点任务分配效果更加精确,充分利用了集节点动态资源,Nginx集系统的性能的进行了改良。本文算法平均响应时间更短,吞吐量更高,与Nginx的round_robin算法和ip-hash算法相比,随着并发请求数量的增长,本文算法的优势会越发明显。
4结语
对于高并发连接下的请求处理,负载均衡技术尤为关键,在系统分析Nginx内置负载均衡算法的基础上,
本文提出了一种使用最优赋权法改进的加权轮询算法,算法充分考虑了集节点的实时性能。通过最优赋权法获得主客观均衡的权值。实验结果表明,文本提出的算法能有效减少平均响应时间,提高系统吞吐量,有较好的负载均衡效果。
参考文献:
[1]张建东,杨进,刘才铭,李彬.改进的AHP算法在Web集
系统负载均衡中的应用[J].计算机工程与应用,2015,51(7): 93-97.
[2]张宇星,马明栋,王得玉.基于Nginx负载均衡的动态改进
算法[J].计算机技术与发展,2020,30(3):73-81.
[3]陶辉.深入理解Nginx模块开发与架构分析[M].北京:机
械工业出版社,2013.
[4]张娜.基于Nginx负载均衡的动态分配技术研究[J].齐齐
哈尔大学学报,2019,35(1):27-30.
[5]戴伟,马明栋,王得玉.基于Nginx的负载均衡技术研究与
优化[J].计算机技术与发展,2019,29(3):77-80.
[6]潭乾云计算环境下负载均衡策略的研究[D].厦门:厦门大
学,2014.
[7]郑浩,李宁,杨小涛.自适应负载指标权值的负载均衡算法
[J].计算机工程与设计,2019,40(3):623-626.
[8]王红斌.Web服务器集系统的自适应负载均衡调度策略
研究[D].长春洁林大学,2013.
[9]闫利军,吴彩鹏,孙玉杰.基于模糊AHP和证据理论的混合
决策模型[J].计算机工程与应用,2013,49(18):232-236.
69
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论