当前位置:文档之家› 几种常见的负载均衡算法的优化

几种常见的负载均衡算法的优化

www?ele169?com | 45

软件开发

引言

随着信息时代的全民化,网络业务量和数据流量呈几何

级数增长。网络拥堵或服务超载成为网络使用最严峻的问题。进行网络活动时,出现了越来越多加载失败,给用户提供良好、舒适的网络环境是每个网络运营商急需解决的问题,解决的方法多种多样,但面对多种方法时应当选出最高效率,最好使用资源的方法。

首先人们会去寻找更高配置的硬件设备,试图从硬件方

面改善承受能力网络流畅度。增加内存、硬件升级、增加服务器的数量等应对方法。但这些方法有时却无法解决问题,反而造成大量资源浪费。如图1,module-A 和module-B 提供一个服务,module-A 需要将任务提交给module-B

中的机器处理,若任务分配不均会导致后面machine-2...machine-n 机器的资源浪费。在如此现实背景下,人们开始新的技术研究,负载均衡技术应运而生。

负载:就是后端系统的承载能力。如同等条件下,一

个1核1G 内存的机器的承载能力一般会比8核8G 内存的机器差;相同配置下,一个CPU 利用率为80%的机器比30%的承载能力一般差等等。均衡:保证后端请求的平衡。比如:在同等情况下,分

配到多台机器的请求要相当;有些情况下,同一用户尽可能

分配到同一台机器等等。

图1 通过结构因子B 提取A 的边界

所谓负载均衡就是建立在现有网络结构之上,提供一种

有效廉价的方法扩展网络设备和服务器带宽以增加吞吐量,加强网络数据处理能力,提高网络灵活性和可用性。通俗来说相当于将原本一个工人的活分给多个工人完成,减少单个

工人因超负荷工作而崩溃的情况。负载均衡算法各有利弊,人们探索更先进、更高效的负载均衡算法来支撑起更大更快

的网络服务。在现有的算法上,扬长避短,将算法变得更高效、更合理、更能满足实际情况。

1.负载均衡算法的介绍

■■1.1■负载均衡算法

现有的负载均衡算法主要分为静态和动态[3,4]两类。静

态负载均衡算法以固定的概率分配任务,不考虑服务器的状态信息,如轮转算法、加权轮转算法等;动态负载均衡算法以服务器的实时负载状态信息来决定任务的分配,如最小连接法、加权最小连接法等。

■■1.2■常见负载均衡算法的介绍

1.2.1 轮询法

轮询法,就是将用户的请求轮流分配给服务器,就像是

挨个数数,轮流分配。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能

力来分配任务。

1.2.2 随机法

随机法,是随机选择一台服务器来分配任务。它保证了

请求的分散性达到了均衡的目的。同时它是没有状态的不需要维持上次的选择状态和均衡因子[5]。但是随着任务量的增

大,它的效果趋向轮询后也会具有轮询算法的部分缺点。

1.2.3 最小连接法

最小连接法,将任务分配给此时具有最小连接数的节

点,因此它是动态负载均衡算法。一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。

最小连接法适用于各个节点处理的性能相似时。任务分

发单元会将任务平滑分配给服务器。但当服务器性能差距较大时,就无法达到预期的效果。因为此时连接数并不能准确表明处理能力,连接数小而自身性能很差的服务器可能不及

连接数大而自身性能极好的服务器。所以在这个时候就会导致任务无法准确的分配到剩余处理能力强的机器上。

几种常见的负载均衡算法的优化

作者/俞楼涛,浙江省诸暨市牌头中学

摘要:如今越来越多的人使用互联网,而负载均衡算法一直在背后支撑着后端网络服务系统。但现在的负载均衡算法算法仍无法做到服务器集群的均衡分配,并且传统的负载均衡算法在实际生产中会存在各种各样的问题,为了提高负载均衡算法的效率,并且综合考虑多种客观因素对服务器性能的影响。本文通过客观因素加权的方式对负载均衡算法进行了优化。利用权值计算得相应服务器综合能力评分再按比例分配任务。保证性能较好的节点分配到更多任务,使得分配更加均匀。关键词:负载均衡;负载权值;负载均衡效率;算法优化

46 | 电子制作 2017年10

■■2.1■常见的客观因素分析

2.1.1 地理因素

其中服务器与节点距离影响着服务器的反馈时间。正如

长跑与短跑,速度再慢的50m 也比速度再快的3000m 所

需时间少。所以服务器与节点距离越小请求得到反馈的时间也会越小。在两台机器同时可用的情况下,访问距离远的机器代价会比访问近的机器代价高,所以我们会优先选择距离近的服务器。

2.1.2 当前连接数

即使一台服务器性能再好,当它的连接数增大时,也会

造成性能瓶颈,使处理能力下降。因此在设计负载均衡算法时在考虑服务器本身性能好差以外还要兼顾当前连接数大小。所以将当前连接数列入影响客观因素之一。

2.1.3 网络带宽

网络带宽越大即单位时间内输送信息量越大,数据处理

率就越大。相当于马路越宽可容纳越多的车通过而不会造成堵车,单位时间内经过的车就越多。不同的网络带宽会影响服务器信息处理率,因而将网络带宽列入影响因素,在两台服务器各项指标相同的情况下,优先考虑网络带宽大的服务器。■■2.2■结合客观因素的加权算法

上述三种是比较常见的影响服务器效率的因素,不同因素影响程度也不同。所以找出每种因素影响程度并对其加权,就可实现负载均衡算法的优化。

我们定义一个函数表达式来说明加权算法,如下:1122n n

y a X a X a X =++…+如上述表达式所示,其中12n X X ...X 、分别表示不同的

影响因素,12n a a ...a 、分别表示影响因素12n X X X …、的权重,并且12n k a a a 1a 1++…+=≤,,y 表示服务器的综合处

理能力。如此,若将服务器自身处理能力、地理因素、当前连接数、网络带宽作为影响服务器的四个因素,我们设权值5/15的概率分配给A,有4/15的概率分配给B,有6/15的概率分配给C;具体实现时可以通过Rand 函数产生一个

0~15的随机数,根据计算综合能力值与概率原理,当所得随机数为0~5时将任务分配给A,当所得随机数为6~10是将任务分配给B,其余分配给C。

通过对不同因素加权,对不同算法的改进,基本上能实

现任务的合理分配。这一部分主要通过加权用函数表达式的形式对两种常见算法进行改良,并举例分析A、B、C 三台

服务器的任务量分配。

3.结语

负载均衡算法是解决网络堵塞问题的可靠方法。好的负

载均衡算法能够发挥集群的优势,充分利用集群的各种资源,提高服务质量。通过分析各种常用算法,本文提出对外界因素加权的负载均衡算法。理论上,该算法能综合实际负载和性能两个因素,保证系统拥有更高的稳定性。但实践中仍与理论存在差距。因此在未来研究中,将通过实验的方式来验证算法的有效性并不断提高算法的均衡效果。

参考文献

* [1] Li W Z, Guo S, Xu P, et al. An Adaptive Load Balancing Algo rithm for Service Composition[J]. Journal of Software, 2006, 17(5):1068-1077.

* [2]Bevilacqua A. Dynamic load balancing method on a heteroge neous cluster of workstations[J]. Informatica, 1999, 23:49--56.* [3] Hui C C, Chanson S T. Improved strategies for dynamic load balancing[J]. IEEE Concurrency, 1999, 7(3):58-67.* [4] 陈登伟, 鲁智勇. 网络动态负载均衡算法分析[J]. 现代电子技术, 2003, 26(21):81-84.* [5]童瑞霞. 基于动态反馈机制的集群负载均衡算法研究[D]. 武

汉理工大学, 2011.

相关主题
文本预览
相关文档 最新文档