多服务器负载均衡策略研究

(整期优先)网络出版时间:2022-03-29
/ 2

多服务器负载均衡策略研究

王艺遥,齐和平,李学艳,毛玉辉

(北方自动控制技术研究所,山西太原 030006)

摘要:科学技术的发展带动了网络技术的发展,现今网络已经和人们生活息息相关,大型网络的高访问量和高并发给服务器带来了很大压力,采用多服务器进行负载均衡是解决这一问题的一种方法。笔者分析多种负载均衡策略的特点,并指出后续负载均衡策略的发展方向。

关键词:负载均衡 集群 最小连接数法

1 引言

随着科技的发展,现有网络的访问量和业务量日渐提高,网络核心部分的处理能力和计算能力需求也随之变高,单一的服务器根本无法承受庞大的网络,如果继续使用原先的服务器,优化性能的方法即为提升单一服务器的性能,但这样的提升带来的效果是有限的,而且每次遇到性能不足选择提升性能的成本也将越来越高,甚至可能出现提升到最优性能依然难以负载高访问量的情况。针对这种现象,选择由单一服务器转变为集群服务器进行负载均衡是一种廉价而有效的方法,且使用集群服务器,遇到负载过多无法处理的情况时,只需要在集群中扩充服务器数量即可。

2 软件负载均衡和硬件负载均衡

根据负载均衡的实现方式,负载均衡可分为软件负载均衡和硬件负载均衡。

软件负载均衡[1]是指在一台或多台服务器上的相关操作系统中安装一个或多个对应的软件实现的负载均衡,如Nginx,CheckPoint,Firewall-1,ConnectControl等,其优点是基于特定环境,配置简单,操作灵活,价格低廉,可以满足一般情况的负载均衡,但软件负载均衡也有其局限性,一方面软件本身的运行就会占用一定的系统资源,且越复杂的功能占用的系统资源越多[2],另一方面软件负载均衡的可扩展性较差,当负载量较大时,软件本身会成为影响负载能力的关键因素,且软件负载均衡受到操作系统的限制,若是操作系统本身出现问题,会影响软件负载均衡的正常工作。

硬件负载均衡是指通过在实际网络中添加具有负载均衡功能的硬件设备实现负载均衡功能,这种设备通常被称为负载均衡器,负载均衡器一般安装在服务器和外部网络之间,由于使用专用设备去完成负载均衡任务,不同于软件负载均衡,这一设备独立于操作系统,将大幅提高性能,可达到最佳负载均衡需求,但是硬件负载均衡成本较高,且若只是用一台负载均衡器,一旦负载均衡器出现故障,整个系统将无法正常工作,若使用多台负载均衡器,虽然大大增加了系统可靠性,但花费也将大大增加。

3 本地负载均衡和全局负载均衡

根据负载均衡的地理结构,负载均衡可分为本地负载均衡和全局负载均衡。

本地负载均衡指只对本地服务器集群做负载均衡,这一方式考虑只用本地计算机资源实现大数据流量和高网络负载问题的解决,当需要提高负载能力时,不需要调整网络架构,只需直接在集群中添加一台新的服务器,即可提高负载能力,且在这一添加过程中,其他服务器设备正常工作,服务并未停止。

全局负载均衡主要针对地理位置分布较广,且各个客户端节点较分散,整个网络空间上覆盖面积较大的情况。全局负载均衡在多个地点设置服务器站点,使其用户只通过ip或域名即可自动访问距离用户最近的服务器,从而加快访问速度。全局负载均衡可以提高服务器响应速度,避免网络拥塞,并且可以避免因服务器单点失效而引发的系统故障。

4 静态负载均衡和动态负载均衡

负载均衡算法可以分为静态负载均衡算法和动态负载均衡算法两类。静态负载均衡算法有轮询法,加权轮询法,随机法,加权随机法,源地址哈希法等。动态负载均衡算法[3]有最小连接数法,加权最小连接数法,最快相应速度法等。

轮询法指将请求按照固定顺序从头到尾依次分配给每台服务器,这一算法的优点是配置简单,效率高,可扩展性好。但是这一算法更适用于服务器性能一样的情况,若服务器性能不同,轮询法分配请求可能会给性能较差的服务器带来负担,性能较好的服务器却没有达到极限。

因此产生了加权轮询法。加权轮询法[4]考虑到不同服务器配置不尽相同,因此不同服务器抗负载能力也不尽相同,对于配置较高的服务器,分配较高的权重,使其处理更多的请求信息,对于配置较差的服务器,分配较低权重,减轻其压力,同时采取轮询方式,按照权重生成一个服务器序列,到来的请求根据这一序列分发给不同服务器,实现负载均衡。这一算法虽然能较好实现负载的分配,但实际环境中各个服务器的抗负载能力不是一个定值,且无法精确计算,只能粗略估算。

源地址哈希法指用哈希函数计算客户端的ip地址,得到一个数并对服务器节点数量取模,得到的结果便是客户端应当访问的服务器序号,如果服务器集群一段时间没有添加或删除服务器节点,对某一台具体客户端,其每次请求应当是发送给同一服务器的,这有利于人为干预节点,可以通过调整ip改变客户顿连接的服务器,但这也导致若某一服务器故障,连接这一服务器的所有客户端都无法正常发送请求,同时若短时间内出现大量请求,源地址哈希法的负载均衡效果不如随机法或轮询法。

以上方法都是静态负载均衡算法,不能根据服务器集群中每一台服务器的实时状态调整分发策略,动态负载均衡算法可以实现这一功能。

最小连接数法指根据当前每个服务器节点的连接数进行请求分配,新到的请求分配给连接数最少的服务器,初始各服务器连接数设置为1 ,当服务器节点收到一个新的请求后,其连接数加一,若服务器宕机,连接数设置为0,表示其无法接收请求,由此可提高服务器的总利用率,达到负载均衡效果,但可以看出这一算法存在和轮询法相似的问题,若两个服务器性能差距过大,连接数不能表明服务器负载能力,两个服务器连接数相同,但对性能较差的服务器,可能已经无法处理更多的请求,对性能较好的服务器,仍然可以继续处理,而新到的请求仍可能分配给性能较差的服务器,这将导致该服务器过载,影响系统正常工作。

因此考虑根据各个服务器性能给各服务器设置一个权值,即为加权最小连接数法。这一方法按各服务器性能分配给其一个权值,性能高的权值低,性能低的权值高,在新的请求连接到某一服务器时,需要乘以权值再加到连接数中作为新的连接数,由此同样的一条请求达到服务器,性能优秀的服务器请求数增加少于性能较差的服务器,因此会有更多请求分配给性能较好的服务器。但这一算法同样存在问题,服务器的性能难以被具体量化,权值的设定若只凭借主观感知,很难设置合理,反而可能造成更大的误差。

5 结语

综上所述,基于大规模网络高并发,数据传输量大,数据传输频率高的特点,负载均衡策略将更倾向于发展软件负载均衡策略以降低经济成本,更加全局化以提高网络容错率和可用度,向动态化方向发展以实时调整策略,更多地降低服务器集群负载,无论在军用角度还是民用角度,研究负载均衡策略都有重要意义。

参考文献:

[1]刘琨. 云计算负载均衡策略的研究[D].吉林大学,2016.

[2]王利萍. 基于Nginx服务器集群负载均衡技术的研究与改进[D].山东大学,2015.

[3]杨洋,杨家海,王会,李晨曦,王于丁.IP网络时延敏感型业务流自适应负载均衡算法[J].通信学报,2015,36(03):135-145.

[4]王鹏,黄焱,李坤,郭又铭.云计算集群相空间负载均衡度优先调度算法研究[J].计算机研究与发展,2014,51(05):1095-1107.