河北工业大学硕士学位论文WEB服务器负载均衡技术研究姓名:付文超申请学位级别:硕士专业:计算机应用技术指导教师:牛存良20081101河北工业大学硕士学位论文iWeb服务器负载均衡技术研究摘要Internet的快速增长,使web应用成为目前昀重要、昀广泛的应用,需要更高性能的web服务器提供更多用户的web服务,因此,web服务器面临着访问量急剧增加的压力,对其处理能力、响应能力等带来更高的要求。但是,通过一台高性能计算机已经很难满足日益增长的服务质量要求,提供可扩展、高可用和高性能的Web服务。web服务器集群技术已经成为解决这一问题的有效方法。web服务器集群是指多台服务器同时运行同一个web应用同时提供服务,前端负载均衡器利用某种负载均衡策略将众多的访问请求分散到不同服务器上进行处理,目的是增加服务的稳定性和缩短服务的响应时间。其中负载均衡是构建集群中很重要的一种技术。负载均衡技术提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法。目前常见的负载均衡算法有:轮转法、加权轮转法和昀快连接法等。这些算法大多属于静态算法,没有优化的策略,很难只是通过即使复杂的静态负载调度方案达到系统的负载均衡。本文对web服务器负载均衡技术进行了深入的研究。分析了HTTP协议工作原理和集群负载均衡技术原理,得到影响web访问服务的各种因素和web服务器负载均衡的工作模型。并在以上基础上提出了一种改进的负载均衡算法,新算法是一种基于内容的负载均衡算法,结合动态反馈负载均衡算法,它将用户请求分为静态请求和动态请求,静态请求主要考虑访问局部性,动态请求主要考虑负载均衡,并且通过系统参数调节控制集群系统的有效运行。在理论分析的基础上,利用Java语言实现了web服务器负载均衡系统,进行了仿真实验。通过实现结果证实新算法相对传统算法能充分利用现有的软硬件资源,提高了服务器性能,使服务资源得到昀大效率的利用,是目前解决web服务器负载不断增加的一种有效方法。关键词:web服务器,HTTP协议,负载均衡,算法Web服务器负载均衡技术研究iiWEBSERVERLOADBALANCINGTECHNOLOGYRESEARCHABSTRACTThefastdevelopmentoftheInternetmakesthewebapplicationbecomethemostimportantandthemostwidespreadapplication,thewebserverwithbetterperformanceisurgentlyneededinordertoprovidemorevisitorswithbetterservice.Thewebserverisfacingwiththepressurecausedbythevastincreaseofvisit,whichmakesahigherdemandonwebserver’sabilitytorespondtotheusers’requestsandtodealwiththem.Andthesametime,facingthehighlyexpandable,availableandhighPerformancerequirementsonwebservice,ahighperformancecomputershasbeendifficulttomeettheincreasingqualityofservicerequirements.Therefore,serverclustertechnologyisneed.Webserverclusteringreferstonumbersofserversrunningatthesametimewithasamewebapplicationtoprovideservicesatthesametime,front-endloadbalancingdevice,usingaloadbalancingstrategy,allocatealargenumberofrequeststoaccessintodifferentserverforprocessing,withtheaimofincreasingthestabilityoftheserviceandshorteningtheresponsetime.Theload-balancingstrategyisaveryimportanttechnologyinconstructingwebserverclustering.Loadbalancingtechnologyprovidealow-costeffectivemethodtoexpandbandwidthofwebserverandincreasethroughputofwebserver.Atpresent,thecommonloadbalancingalgorithms:Round-Robin、WeightedRound-Robin、FasterResponsePrecedeneeandsoon.Mostofthesealgorithmsarestaticmethod,thereisnooptimalstrategy.Itisdifficulttojusteventhroughthecomplexstaticloadbalancingalgorithmstoachieveloadbalancing.Inthispaper,Idoain-depthstudytothewebserverloadbalancingtechnology.Accordingtotheanalysisofthehttpprotocolandtheprincipleofclusteringload-balancingtechnology,wegettheimpactfactorsofimpactingwebservicevisitandwebserverloadbalancingwork河北工业大学硕士学位论文iiiModel.Thenwegetanewloadbalancingalgorithm,Thenewalgorithmisacontent-basedloadbalancingalgorithm,combinedwithfeedbackdynamicloadbalancingalgorithm.Inthisalgorithm,user’srequestisdividedintostaticanddynamicrequest,thestaticrequestismainlyconsideredthecachehitrate,thedynamicrequestismainlyconsideredtheloadbalancingandregulatingthesystemparameterstomaketheclustersystemtoworkeffectively.Onthebasisofanalysisingtheory,usingJavaprogramminglanguage,wemakeawebserverloadbalancesystemtocarryoutasimulationexperiment.Accordingtotheachievedresults,weconfirmthatthenewalgorithmcanmakefulluseofexistinghardwareandsoftwareresources,enhancetheperformanceoftheserverandgetthelargestutilizationofresources,whichisaneffectivemethodtoaddresstheever-increasingload.KEYWORDS:Webservers,HTTPprotocol,loadbalancing,algorithm河北工业大学硕士学位论文1第一章绪论§1-1课题的研究的背景和意义不可否认,当今计算机技术已进入以网络为中心的发展时期。由于B/S模型的简单性、易开发性,易管理性和易维护性,B/S计算模式在网上被广泛采用。在九十年代中期,万维网(WorldWideWeb)的出现以其简单易操作的方式将图文并茂的网上信息带给普通大众,Web也正在从一种内容发送机制成为一种服务平台,大量的服务和应用(如新闻服务、网上银行、电子商务等)都是围绕着Web进行。一种越来越强的趋势表明,WEB有可能在不远的将来代替各种不同的服务器端和客户端的软、硬件平台以及相应的应用系统,成为人们在Interne上进行信息发布和获取标准平台,甚至取代各种媒体成为主宰人们进行信息传递和信息交流的主要手段,于是业界有了“谁能控制web,谁就能控制整个Internet和整个计算机行业”的说法[1]。随之产生的结果是许多热门网站和重要站点的服务访问量日益增大。例如根据Yahoo的新闻发布,Yahoo已经每天发送6.25亿页面[2]。这不仅促使Internet用户剧烈增长,同时导致Internet流量爆炸式地增长。由于并发访问人数不断增加,Web服务器的负载越来越严重,造成超负荷运转情况。另外大部分网站都需要提供每天24小时、每星期7天的服务,对电子商务等网站尤为突出,任何服务中断和关键性的数据丢失都会造成直接的商业损失。例如,根据Dell的新闻发布[3],Dell现在每天在网站上的交易收入为一千四百万美元,一个小时的服务中断都会造成平均五十八万美元的损失。所以综上所述,这对网络服务的可靠性和响应时间提出了越来越高的要求。从网络技术与处理器、内存生产技术的发展对比来看,网络带宽的增长远高于处理器速度和内存访问速度的增长,因此,相对于网络因素,认为web服务器端本身越来越有可能成为网络服务质量的瓶颈[4]。目前,在超负荷的服务器提供服务时暴露出以下方面的主要问题:1)服务器的服务能力远远不能满足实际需求虽然各个厂家的服务器性能逐步提高,其处理器芯片不断升级,内存和硬盘的存储容量越来越大,但是仍然不能满足急剧膨胀的用户访问需求。通常来讲,一台普通Web服务器可以处理1000个并发连接,更高档的一般也在3000至5000个左右,但无论如何,单台服务器升级速度的提高也赶不上用户数量的增长。长远来看,单纯的硬件升级也不是根本的解决办法。2)服务器的服务可靠性不能保证服务器本身的软件、硬件和网络连接、网络黑客等原因理论上都有可能造成服务器出现各种相关故障,因此,在故障恢复之前,用户将会在一段时间内得不到应有的服务,对于一些要求高可靠性的网络系统而言将是致命的缺点,因此带来的危害后果及损失将十分严重。3)服务响应时间长,延迟大,无法满足用户需求服务器忙时的反应能力下降,会造成用户端连接速度缓慢,延迟增加,即使服务器响应正常,由于连接服务器忙造成的拥塞同样也会影响对用户的服务,有时用户会感觉到服务几乎处于停滞状态。4)存在Web服务器访问服务的单点故障随着用户访问的增加,Web服务器访问服务的负担也将增加,很容易造成Web服务器宕机而停止访问服务,特别是电子商务网站,网站的速度直接关系到成交。据权威机构ZONA研究中心统计,一个电子商务网站必须保证用户在7秒内得到回应,否则将损失30%或者更多的客户。要满足Web服务器可扩展性和可用性的要求,有以下两种方案可供选择。方案一:升级Web服务器,采用更快的CPU,增加更多的内存,使其具有更高的性能。方案二:增加Web服务器,用多台服务器来完成相同的服务,通过并行技术来大大提升系统性能,这种方法就是服务器集群。Web服务器负载均衡技术研究2显然,方案一不能处理不断增长的负载和可用性需求。这种服务器升级方法有下列不足:一是升级过程烦琐,机器切换会使服务暂时中断,并造成原有资源的浪费;二是越往高端的服务器,所花费的代价越大;三是一旦该服务器或应用软件失效,会导致整个服务的中断。方案二的集群技术是近年来发