负载均衡提高应用系统性能

2009-07-24 08:51
中国教育信息化·高教职教 2009年6期
关键词:负载均衡服务器性能

全 宇 何 苗

摘要:本文讨论了应用系统的性能问题,介绍了服务器负载均衡的概念和方式,并详细阐述了硬件负载均衡的算法、优点。在文中,以一个案例为例描述了如何通过硬件负载均衡提高应用系统性能,以及消除应用系统服务器的单点故障,从而增强应用系统的稳定性和可靠性。

关键词:负载均衡 服务器 性能

中图分类号:TP393.01 文献标识码:A 文章编号:1673-8454(2009)11-0017-03

一、引言

信息化、数字化、网络化已经普及到社会的各个行业。在校园里,选课,视频课件点播、回放,消息发布等已经成为校园网平台上的重要应用;在医院里,让患者自己通过网络查询检验、检查结果已经开始应用;在银行里,网上银行已经逐渐被人们所接受;在政府、在各个服务机构,越来越多的业务已经开始在网络上运行,给人们的学习、工作和日常生活带来了很大的方便。但是这些系统在运行一段时间后都会暴露出性能问题,严重的会导致业务系统不可用。如:校园内的系统,其主要有两个明显的特点:一是用户数量大,用户主体是学生,每个学生都要访问相应的业务系统,获取相关的学习和上课信息;二是访问时间集中,开学的一周内,所有的学生都要在网上选课,查看本学期相关的信息,在学期末,又要上网集中在一周内查询考试成绩。在这两个特点的影响下,每个学期,校园网平台上的各个应用大部分时间平稳运行,而在几个固定的时间段会出现访问高峰,而恰恰就是这个访问的高峰常常造成各个应用系统性能低下,速度慢,甚至出现宕机的情况,影响了各项正常的业务;再如:医院为患者提供检验、检查结果查询的系统,每天上午9-11点会出现一个访问高峰,而其他时间段访问量不高,而就是每天上午的这两个小时,很多医院遭到患者对查询服务的不满。各个企事业单位为了保证自己的各个应用系统持续平稳运行,必须要采取相应的措施和手段。[1][2]

二、负载均衡

提高应用系统性能最常用到的方法是提高服务器的硬件配置,这种做法在一定程度上可以提高应用系统的性能,但是不能从根本上解决问题。事实证明,增加服务器的CPU、内存的数量,其性能不会随着线性增长,而且服务器的硬件配置也不能无限制的扩充和提高。这种方法常常应用在中小型的应用系统中。

1.什么是负载均衡

负载均衡就是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无需其他服务器的辅助。通过某种负载分担的算法,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。完成负载均衡的几台服务器可以是相同软硬件配置,也可以是不同的软硬件配置,甚至操作系统也可以不一致。这使得管理部门可以利用几台低配置的服务器实现高性能的应用系统,而不必购买价格昂贵的高配置的服务器。负载均衡可以分为软件负载均衡和硬件负载均衡。[3][4]

2.软件负载均衡

利用专门的应用软件在多台服务器之间做负载均衡。软件负载均衡的优点是实现简单,投入成本低。缺点如下:

第一:由于实现负载均衡功能的软件要安装到业务服务器上,所以软件自身要占用一部分性能已经低下的服务器的资源。

第二:部分实现负载均衡功能的软件对负载均衡的服务器平台有局限性。

第三:软件实现的负载均衡,流量分摊算法少,有的时候流量分摊的算法不适合实际的环境。

第四:存在兼容性的问题。在生产系统的服务器上面安装实现负载均衡功能的软件,软件的兼容性无法保障,没有经过测试就安装,是一种冒险的行为。

所以,在实际中,软件负载均衡通常用于小型应用系统,或者资金不充足的企事业单位。而大中型系统中通常使用硬件负载均衡。

3.硬件负载均衡

硬件负载均衡是利用专门的硬件设备实现多台服务器之间的负载均衡。在实现过程中,无需改变现有的网络环境,不在服务器上安装任何软件,所有的操作全部在硬件负载均衡设备上配置和实现。

(1)算法[5]

不同的应用环境,要使用不同的负载均衡算法与之相匹配,才能充分提高整个应用系统的性能。常用的负载均衡算法如下:

算法1:轮询

将外部的请求均匀地分摊到各个服务器上面,如:有3台服务器实现负载均衡,那么3台服务器接受处理的请求数量为1∶1∶1。这种算法适用于做负载均衡的几台服务器硬件配置相同,他们可以平均分摊所有流量。

算法2:比率

将外部请求安装预先设定好的比率分摊到各个负载均衡的服务器上,如:有3台服务器做负载均衡,设定他们接收处理请求的比率为1∶2∶3,那么每台服务器处理的请求是不同的。这种算法适用于做负载均衡的几台服务器硬件配置不同,按照他们的处理能力,设定比率,从而使得性能高低不同的服务器都能够平稳运行,不会出现个别服务器负载过重,而另外的服务器负载过少的情况。

算法3:最少连接数

负载均衡的硬件设备会不断地检测做负载均衡的几台服务器上的连接数的数量,将新的请求转发到连接数最少的服务器上面。这种算法适用于应用为长连接的情况。

算法4:最快响应时间

负载均衡的硬件设备会不断地检测做负载均衡的几台服务器中,哪台服务器响应速度最快,从而将请求转发到响应时间最快的服务器上面。这种算法适用于每台做负载均衡的服务器都能够在很短的时间内处理完请求,没有性能的问题。

(2)故障检查方法[6]

负载均衡设备会不断地检测负载均衡服务器的状态,保证请求全部转发到正常工作状态的服务器上,而不转发到故障服务器上。常用的检测方法如下:

方法1:ping

ping是最直接的一种检测网络是否通畅的方法。负载均衡的硬件设备会不间断地ping做负载均衡的几台服务器,如果某台连续3次ping不通,则认为该服务器已经出现故障。

方法2:tcp open

负载均衡设备会模拟外部请求想做负载均衡的服务器发送请求,如果能够得到回应,表明服务器状态正常,反之,认为服务器出现故障。如:一个服务器提供Web服务,即负载均衡设备检查负载均衡服务器的80端口是否正常,如果正常,则表明服务器的服务正常,如果检测不到80端口的服务,那么认为该服务器上的Web服务已经中断。

(3)优点

1)容错

当负载均衡设备检测到某台负载均衡服务器出现故障时,会自动旁路掉该服务器,新的请求将不再转发到该服务器上,从而实现了容错机制。容错机制是实现负载均衡的同时带来的好处,单凭一台高性能、高配置的服务器是实现不了的,也就是说,一台高配置的服务器存在单点故障,而负载均衡不但解决了整个业务系统的性能问题,而且消除了单点故障。

2)可扩展性

硬件负载均衡的扩展能力很强,若3台服务器性能不能满足需求,可以增加到4台或5台,甚至更多。

3)节省投资

只要有处理能力的服务器都可以加入到负载均衡的行列里,通过负载均衡技术利用一些过时的,配置很低的服务器提供高性能的服务。

4)平台无关性

做负载均衡的服务器与软硬件平台无关,只要基于TCP/IP协议就可以。

三、负载均衡的应用

在实际应用中,很多系统都可以通过负载均衡技术来提高整个系统的性能。如图1所示是硬件负载均衡典型的拓扑结构。

图1中,3台硬件配置相同的服务器通过硬件负载均衡器做负载均衡,下面通过服务器全部正常工作和部分服务器出现故障两种情况讨论负载均衡在实际中的应用。

1.服务器全部正常工作

来自于客户端的所有请求,先到达负载均衡器,负载均衡器根据预先设置的轮询算法,将所有的请求全部转发到3台服务器上,3台服务器接收处理请求数量的比率为1∶1∶1。

2.部分服务器出现故障

当负载均衡器检测到3台服务器中的Server1出现故障的时候,它会自动旁路掉出现故障的服务器,将来自于客户端的请求全部转发到Server2和Server3上。当Server1从故障恢复后,负载均衡器又会重新把请求分发给Server1、Server2和Server3上。

综上所述,3台服务器通过负载均衡后,性能提高了3倍,并且消除了应用系统中的单点故障,达到了为用户提供高质量、高性能服务的目的。

四、结束语

负载均衡技术在越来越多的应用系统中发挥着重要的作用,在提供高质量、高性能服务的同时,消除了网络应用系统中服务器的单点故障,节省了投资的成本,负载均衡技术已经成为网络应用系统中安全可靠的保障手段之一。

参考文献:

[1]金雷,谢立.应用系统中集群技术的实现[J].计算机应用研究,2003,20(1):88-91.

[2]马小星,吕建.分布式Web服务器技术综述[J].计算机科学,2002,29(1):7-12.

[3]刘爱洁.负载均衡技术浅析[R].北京:信息产业部北京邮电设计院第七届新技术论坛,2002.

[4]唐俊奇.负载均衡技术的三种实现方法[J].微电脑世界,2003(4):72-74.

[5]李树民.论服务器集群技术[J].互联网世界,2000(7):36-37.

[6]朱文涛,洪佩琳,李津生.基于LINUX虚拟服务器的负载均衡[J].计算机工程,2002(12):55-57.

猜你喜欢
负载均衡服务器性能
通信控制服务器(CCS)维护终端的设计与实现
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
中国服务器市场份额出炉
异构环境下改进的LATE调度算法
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
强韧化PBT/PC共混物的制备与性能
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能