• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

多层次负载平衡之一

发布: 2007-7-02 21:50 | 作者: admin | 来源: | 查看: 8次 | 进入软件测试论坛讨论

领测软件测试网

1.网络服务应用现状

当前, Inte.net上业务量的发展都超出了过去最乐观的估计,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消,特别是Web服务器,必须具备承受大量并发访问的能力。而对于提供大负载Web服务的服务器而言,CPU、I/O的处理能力很快会成为瓶颈。

简单地提高硬件性能并不能真正解决这个问题,因为单台服务器的性能始终有限。一台PC服务器通常所能提供的并发访问处理能力大约为1000个,更高档的专用服务器能够支持3000至5000个并发访问,但拥有这样的能力仍然无法满足负载较大的网站的要求。网络请求具有突发性,当某些重大事件发生时,网络访问量就会急剧上升,从而造成网络的拥堵。为缓解这个瓶颈,必须采用多台服务器提供网络服务的方法,将网络请求按一定规则适当地分配给这些服务器。

使用多台服务器分担负载的最简单办法是将不同的服务器用在不同的方面。按提供的内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台用于提供游戏页面; 或者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用于提供CGI等大量消耗资源的动态页面访问。然而,由于网络访问具有突发性,很难确定页面负载的大小,服务页面分割过细会造成很大浪费。事实上造成负载过大的页面常常在变化中,如果要经常按照负载变化来调整页面所在的服务器,必然会给管理和维护带来极大问题。因此,对于负载大的网站,根本的解决办法就是采用负载均衡技术。

2.问题的解决

在负载均衡的思路下,多台服务器为对称方式,每台服务器都具有同等的地位,可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀地分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。由于建立内容完全一致的Web服务器并不复杂,可以使用服务器同步更新或者共享存储空间等方法来完成,因此负载均衡技术成为建立高负载Web站点的关键性技术。

负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性方法。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性 ;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。

3.负载均衡器基本上可以分为两类:

3.1软件类型的负载均衡器

软件类型的负载均衡器存在的唯一问题就是软件执行的进程在速度上天生要比嵌入硬件的进程要慢。你需要一个负载均衡器的首要原因是你的网络操作是以电信号的速度进行,而你的服务器操作是以应用程序的速度或者应用程序传输内容的速度进行。另一方面,如果你的网络有与众不同的需要,或者一些特别的需要,软件可以通过简单的升级满足你的需要。当前用软件来实现负载均衡任务的设备有三种类型: 构筑在PC平台上的设备、加装通用CPU的第三层交换机以及基于网络处理器的系统。

如果只是完成简单的流量交换(Traffic cops)功能,这些产品的性能还是能够为用户所接受的。例如,利用CPU或者网络处理器实现的、基于软件的负载均衡设备,完全有能力使用会话中的第一个数据包里的第三层IP目标地址,来确定如何处理送往同一目标地址的后续数据包。 但是这种简单的功能(像路由器中的一样)不能让网管通过调整网络得到有利润价值的应用管理。当IT专家试图使用基于软件的负载均衡设备实现更多的、涉及应用层数据的智能交换时,比如像为改善高端网站的性能而进行的URL 交换,以及在电子商务应用中为识别用户而进行的持续cookie跟踪等,速度问题就更严重了。

究其原因,问题的关键在于,完成这些功能所需的信息深埋在数据包的内部,它只在网络会话建立时才出现一次。这要求基于软件的负载均衡设备监测每个会话数据包的内部。例如,利用URL交换,这一监测过程必须对每一个网页上的每一个对象重复一次,而一个网页很容易就包含25个以上的对象,可想而知,软件处理留给交换机的是一个巨大的工作负担。

依靠通用CPU或者网络处理器实现的、基于软件的负载均衡设备不能以任何接近实时的方式调动运算能力来完成交换任务。使用类似URL交换的智能化的应用识别功能会使所有这些器件的性能降低90%以上,从而导致对终端用户响应服务的迟缓,造成严重的延迟和性能恶化。更糟糕的是,这还只是一个网的问题,使用一个基于软件的负载均衡设备在多个网络间竞争通信,它很快会变成一个瓶颈——既成为别的网络的瓶颈,也成为它自己的瓶颈。

  最后,基于软件的负载均衡设备由通用CPU或者网络处理器驱动,使用这些负载均衡设备的服务提供商和企业用户正在冒险。他们不可能将自己的业务扩展到能够快速跟上新客户或者终端用户的增长,从而也就不能创造新的收入。

3.2硬件类型的负载均衡器

硬件类型的负载均衡器通常是由路由器和交换机实现的。这些设备使用特定应用程序集成电路(ASICs),并且在硬件中以电信号的速度运行。这些是市场上最快的设备。然而,由于他们只能在硬件中运行,如果你的网络业务处理所有改变,你就不得不等待供应商的开发并且你所需要的负载均衡器必须能够给供应商带来利润,否则你必须重新购买硬件。

硬件交换的优势在于通过交换技术实现所有的网络功能,包括线速的千兆比特TCP会话的分析、终结、发起甚至修改,全部用硬件实现, 去掉了复杂的软件、通用CPU和网络处理器。过去已有的解决方案依靠复杂的软件与通用CPU或者网络处理器配合,完成同样的负载均衡任务。网络功能从软件向硅片转移不是新思路,在20世纪90年代后期,基于软件的路由器向基于专用集成电路(ASIC)的第三层交换机的转移就是例证。当网络技术被集成到硅片中去时,性能都会得到显著增加,而总拥有成本则会大幅度降低。我们可以这样认为:任何时候都是硅技术胜过软件。这种简单但是优秀的解决方案有一个直观的结果: 服务提供商和企业用户可以不牺牲线速的千兆比特性能,自由地设置网络应用和业务所要求的任何规则。这不仅是一个理论上的优势,就多媒体应用而言,如果处理几十万个用户到视频服务器的会话就像处理一个会话一样,这种优势就牵扯到企业赚钱和赔本的问题了。

4.它是怎样工作的?

负载均衡器根据他们通过自定义的“代理”(由负载均衡器供应商设计)或使用某些形式的系统管理工具收集到后端服务器的信息来调整他们的传输量。每钟均衡器都有其强项和弱点。代理一般为应用程序或者特定的硬件,可以密切的监视程序进程。然而,你通常最终会受到某个供应商的束缚。 使用现存的系统管理工具负载均衡器通过API和通用的协议可以监控范围很广的应用程序和硬件。当然,使用这些方法来管理你的商业系统有一些明显的,有待进一步探讨的安全问题。正如前面所提到的,新一代的负载均衡器不仅处理网络和服务器性能问题,而且可以根据前端对后端内容的请求指挥流量。根据这个想法,负载均衡器应答请求并保持链接,直到内容准备开始传输,这个过程称为“延迟捆绑”。

这种需要了解内容的路由有非常大的好处,在这些服务器群中可以调整特定的应用程序(CGI,视频流,静态页面服务,cookie服务,等等。),而且负载均衡器将在保持连接状态期间处理和向客户传送所有的请求。例如,由于安全套接层(SSL)连接对处理器非常敏感而且必须在几个Web进程和事务之间长久的保持连接,所以在使用SSL进程实现Web购物车时,这一点显得尤为重要。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网