欢迎来到360期刊网
客服电话:4006-587-789 客服在线时间:09:00~22:30(节假日不休息) 客服邮箱:360qikan@vip.163.com在线投稿:非工作时间点此在线提交您的稿件
当前位置: 首页 > 论文范文 > 计算机论文 >

使用网络地址转换实现多服务器负载均衡

时间:2017-09-30 11:12来源:未知 作者:360期刊网 点击:

360期刊网为您提供最专业的计算机论文发表服务,如您需要发表计算机论文可在计算机期刊栏目查找您需要投稿计算机杂志

  使用网络地址转换实现多服务器负载均衡

  王刚 谭振军 于永南

  (中国电信集团公司吉林省长春市分公司 长春 130033)

  摘要:本文探讨了分布式网络服务器使用的负载均衡技术及负载分配的策略,并基于网络地址转换在FreeBSD上实现了负载均衡网关,应用于我们的Internet网络服务器上,将负载分给多个服务器分担,以解决Internet服务器面临的大量并发访问造成的CPU或1/0的高负载问题。

  关键词:负载均衡 网络地址转换 FreeBSD

  中图分类号:TP2 文献标识码:A 文章编号:1672-3791(2011)02(b)-0020-01

  Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,服务器的处理和I/O能力成为了提供服务的瓶颈。由于单台服务器的性能总是有限的,必须采用多服务器和负载均衡技术才能满足大量并发访问的需要。最早是通过DNS来实现的,还有反向代理服务器、支持负载均衡的地址转换网关等但在不同的程度上都有其优缺点。除了这三种负载均衡方式之外,有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力等,但它依赖于特定协议,因此使用范围有限。根据现有的这些负载均衡技术,我们选择了使用软件方式实现网络地址转换的负载均衡的方式,以弥补硬件负载均衡器的不灵活,并应用优化的均衡策略来实现后端服务器负载分担的最优状态。

  1负载均衡策略

  为了将负载均匀的分配给内部的多个服务器上,就需要应用一定的负载均衡策略。传统的负载均衡策略并没有考虑到服务请求的不同类型、后台服务器的不同能力以及随机选择造成的负载分配不均匀等问题。为了使得负载分配十分均匀,就要应用能够正确反映各个服务器CPU及I/0状态的负载均衡策略。

  客户发起的服务请求类型是多种多样的,按照对处理器、网络和I/O的资源要求,可将其分为静态文档请求和动态文档请求两类。对于静态文档,每个服务进程占用大致相同的系统资源,因此就可以使用进程数来表示系统负载。而动态文档服务需要进行额外的处理,其占用的系统资源就超过处理静态请求,因此需要使用一个权重来表示。此方法中没有考虑服务器硬件的限制,当达到硬件限制的时候,由于资源紧张,服务器的负载就会明显增加。Llmax为服务器集群中最高硬件配置的服务器的Ll值。当确定了每个服务器的负载之后,中心控制负载分配的服务器就能将负载正确的分发给最空闲的服务器,从而不会象其他的负载分配策略那样会导致负载分配不均匀的情况。

  2实现方法及实验结果

  我们的服务器系统由使用快速以太网连接起来的多台FreeBSD系统组成。每台后端服务器上运行一个守护进程来动态获得自己的负载状态,而使用FreeBSD实现的中心控制网关就通过这些守护进程刷新各个服务器的负载,以进行正确的负载分配。为测试这种实现的可用性,我们针对最常见的HTTP协议进行我们的测试实验。为区分不同请求种类设计了三个不同类型的测试,以测试不同方面的性能。CGI程序产生的动态文档用于测试在服务器的处理能力的负载均衡状态;小型静态文档用于测试频繁连接下负载均衡的状态;大型静态文档测试磁盘及网络I/O的负载均衡状态。

Load BalancinS Perfonance by Iatd

负载均衡性能

Back-end Servers

图1 负载均衡性能

  测试结果以单台服务器每秒钟完成请求的性能为基准,显示使用多台服务器进行负载均衡时每秒种完成的请求数与基准请求次数的比率(如图1)。

  上图中的a曲线是处理动态文档请求的,此时随着服务器数量的增加,其性能是成倍增加的;而b曲线为处理小尺寸静态文档请求的,在使用三台服务器时性能改善就不明显了,处理大尺寸静态文档请求的c曲线则几乎没有发生性能变化。为了找到负载均衡系统达不到理想状态的原因,我们考察了服务器资源的利用率,按处理类型、负载均衡网关、服务器1、服务器2、服务器3依次为:a,53%,97%,95%,98%,b,76%,43%、39%,41%*c,94%,32%,31%,35%。由此可知,当处理动态文档a时三台服务器都处于全速运行状态,负载被均匀分配,这是一种理想的状态。当处理静态文档类型b和c时,负载虽然被均匀分配给三台服务器,但每台服务器都没有处于全速运行状态。实验中使用不同数量的后端服务器时,流经负载均衡网关的实际网络带宽为:服务器数量依次为l、2、3台时网络速度(Kb/s)依次为10042.14、11015.10、11442.67。可以看出带宽限制在10MB/s左右,显然这是这个测试使用的负载均衡进程的带宽限制,事实上该程序使用了链表来维护网络地址转换的状态,通过提高硬件性能和改善算法,完全可以进一步提高共性能。

  3结语

  从上面的实验中可以看出,基于网络地址转换的负载均衡器可以有效的解决服务器端的CPU和磁盘I/O负载,在一定硬件条件下具有一定的带宽限制,但可通过改善算法和提高运行负载均衡程序的硬件性能来改善。同时也可以看出,不同的服务类型对不同的服务器资源进行占用,我们使用的负载衡量策略是使用同一个负载进行评估,这对于大多数条件是适合的,然而最好的办法是针对不同的资源,如CPU、磁盘I/O或网络I/O等,分别监视服务器负载,由中心控制器选择最合适的服务器分发客户请求。

  [1] H.Zhu.T.Yang,Q.Zheng,D.Watson,O.H.Ibarra,T.Smith.Adaptive load sharing for clustered digital library servers[J] .Technical Report, CS, U CSB ,1998.

在线投稿