已阅读5页,还剩51页未读, 继续免费阅读
(通信与信息系统专业论文)web服务器集群负载均衡技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 在i n t e r a c t 上,随着客户访问量的增加,w e b 服务器面临着巨大的压力,很可 能会成为网络访问的新瓶颈。解决这一问题的最佳途径就是采用w e b 服务器集群 系统,关键技术是合理有效地实现负载均衡。 论文探讨了提高网络服务能力的有效途径,在研究现有w e b 服务器集群系统 和负载均衡技术的基础上,提出一种基于动态负载均衡的d f ( d y n a m i cf e e d b a c k s c h e d u l i n g ) 算法。算法的核心思想是通过实时负载信息的反馈调整任务的分配, 发挥系统资源的最大利用率。本文根据d f 算法的设计思想采用集中式负载均衡策 略,用纯软件方式初步实现基于d f 算法的负载均衡。测试结果表明,这种方法可 以极大地提高w e b 服务器集群系统的总体性能。 关键字:负载均衡集群动态负载均衡算法 a b s t r a c t o nc u r r e n ti n t e r n e t ,t h el a r g ea m o u n to fc l i e n tr e q u e s t sr e s u l t si nt h eh u g ep r e s s u r e o nt h ew e bs e r v e r s m e a n w h i l e ,t h el o wr e s p o n s ea b i l i t yf o ras i n g l ew e bs c i n e rw o u l d b e c o m ean e wb o t t l e n e c kf o rt h ew e ba p p l i c a t i o n t h eb e s ts o l u t i o nf o rt h ep r o b l e m si s t oa d o p taw e bs e r v e rc l u s t e ra n dt h ek e yt e c h n o l o g yi st oa c h i e v el o a db a l a n c e e f f e c t i v e t h i sp a p e rd i s c u s s e dt e c h n o l o g yo nt h el o a db a l a n c ef o rt h ew e bs e r v e rc l u s t e r o n t h ep a p e r , t h er e a s o nf o rt h eh u g el o a dp r e s s u r ew a sf i r s t l yi n t r o d u c e da n dt h e nt h ew a y t oi m p r o v et h en e t w o r ks e r v i c ea b i l i t yw a sa n a l y z e d b a s e do nt h ea n a l y s i so fc u r r e n t w e bs e r v e rc l u s t e r sa n dt e c h n o l o g yf o rt h el o a db a l a n c e ,a no p t i m i z e dd y n a m i cl o a d b a l a n c ea l g o r i t h mn a m e dd f ( d y n a m i cf e e d b a c ks c h e d u l i n g ) w a sp r o p o s e d ,w h i c h c o v e r st h es e a s o n a lc o l l e c t i o no ft h el o a di n f o r m a t i o na n dr e s p o n s ea b i l i t y , t h e r u l e - b a s e dj u d g m e n to nt h el o a dw e i g h t ,t h ef e e d b a c kb a s e dt a s ks c h e d u l i n g , t h u s i m p r o v i n gt h es y s t e ma b i l i t ya n da c h i e v et h eh i g h e s tu s a g eo fr e s o u r c e a c c o r d i n gt o t h ed y n a m i cl o a db a l a n c ed fa l g o r i t h m ,t h i sp a p e ra d o p t e dt h ec e n t r a l i z e dl o a db a l a n c e p o l i c y , u s e dt h r e el a y e rw e bs e r v e rl o a db a l a n c es y s t e ma n di m p l e m e n t e dt h i sa l g o r i t h m t ot h ea p p l i c a t i o nl a y e rb yt h ep u r es o f t w a r eb a s e dm e t h o d o l o g y i ti sp r o v e db yt h e t e s t i n gr e s u l t st h a td fa l g o r i t h mg r e a t l yi m p r o v e dt h ea b i l i t yo ft h ew e bs e r v e rc l u s t e r a n dp r o v i d e db e t t e rw e bs e r v i c et ot h eu s e r s k e y w o r d :l o a db a l a n c e w e bs e r v e rc l u s t e r d y n a m i cl o a db a l a n c e a l g o r i t h m 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果占尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果:也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:丕垄日期:! 固兰亟 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业 离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部 或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文在 解密后遵守此规定l 本学位论文属于保密在年解密后适用本授权书。 本人签名: 导师签名: 第一章绪论 第一章绪论 i n t e m e t 的迅猛发展,正在深刻改变着人类生存的各个层面,w e b 正在从一种 内容发送机制成为一种服务平台。w e b 的计算内容已经从新闻服务、在线聊天等 简单浏览服务过渡到电子商务、在线交易等网络事务服务,这就对服务性能提出 了更高的要求。当前w e b 服务革命正在成为计算机技术的第三次革命,w e b 所起 的基础作用越来越重要。 1 1 研究的背景和意义 i n t e r n e t 的快速增长,特别是电子商务应用的发展,使w e b 应用成为目前最重 要、最广泛的应用,w e b 服务器动态内容越来越流行。目前,网上信息交换量几 乎呈指数增长,需要更高性能的w e b 服务器提供更多用户的w e b 服务,因此, w e b 服务器面临着访问量急剧增加的压力,对其处理能力、响应能力等带来更高 的要求。如果w e b 服务器无法满足大量w e b 访问请求,将无法为用户提供稳定、 良好的网络应用服务。 目前,由于网络技术的发展和互联网用户数目迅速增加,许多热门网站的服 务访问量日益增大,例如y a h o o 、g o o g l e 、s i n a 、s o h u 等。根据统计,y a h o o 每天 要发送7 亿以上的w e b 页面1 1 1 。由于并发访问人数不断增加,w e b 服务器的负载 越来越严重,造成超负荷运转情况。目前,在超负荷的服务器提供服务时暴露出 以下方面的主要问题: 缺点一:服务器的服务能力很难满足用户日益增长的实际需求。 服务器的性能虽然在不断地提升,但是对于剧增的用户访问量还是不能完全 满足需求。通常来讲,一台普通w e b 服务器可以处理1 0 0 0 个并发连接,更高档的 一般也在3 0 0 0 至5 0 0 0 个左右,也就是说对于现今的服务器,1 0 0 0 0 个用户的访问 量已经是一个比较难达到的技术指标,然而一些比较著名站点的访问量却是上百 万的用户量。所以从长远来看,硬件的提升不是解决这个问题的最佳途径。 缺点二:网络服务的可靠性不能得到保证。 单台服务器可靠性很低。服务器不但会因为用户访问量过大而导致性能下降, 甚至是宕机,而且服务器本身的软件、硬件和网络连接、网络黑客等原因理论上 都有可能造成服务器出现相关各种故障。因此,在故障恢复之前,用户将会在一 段时间内得不到应有的服务。这对于一些要求高可靠性的网络系统而言将是致命 的缺点,因此带来的危害后果及损失将十分严重。 缺点三:用户获得服务的等待时间比较久。 当w e b 服务器的负载过重时,相信每位曾浏览过网页的用户都有这样的经历: 2 w e b 服务器集群负载均衡技术研究 点击某个链接后,接下来的是一段漫长而痛苦的等待,然后才看见请求的主页缓 慢地出现在计算机的屏幕上,甚至等待一段时间后显示网页无法链接。 缺点四:存在w e b 服务器访问服务单点故障。 随着用户访问量的增加,w e b 服务器的负载越来越重,很容易造成服务器不 能及时处理用户请求,更严重的情况是负载过重而发生故障,这对电子商务网站 而言是最棘手的问题。 所以,随着客户机数量和密集型任务的增加,单个w e b 服务器受到处理能力 的限制,很可能会成为网络访问的新瓶颈。随着计算机技术的发展,尤其是网络 技术的发展和计算机应用的普及,提供高质量、高效率的服务已成为每个网站运 营商迫在眉睫的问题,特别是电子商务网站,网站的速度直接关系到成交额。据 权威机构z o n a 研究中心统计,一个电子商务网站必须保证用户在7 秒内得到回 应,否则将损失3 0 或者更多的客户。这就需要迅速拓宽网络带宽和提高网络服 务器的性能以适应网络迅速发展的需求。 从网络技术的发展来看,网络带宽的增长非常迅速,而高速网络服务器的处 理能力正在逐渐成为提高网络服务能力的瓶颈。同时w e b 服务中心越来越多地使 用动态主页等c p u ( c e n t r a lp r o c e s s i n gu n i t ) 密集型应用,这就对网络服务器的性 能提出了更高的要求。未来的网络服务将会提供更丰富的内容、更好的交互性、 更高的安全性等,这就需要服务器具有更强的c p u 处理能力和i o 处理能力。因 此,从应用本身的发展来考虑,有效提高网络服务能力也需要越来越强的服务器 处理性能。 面对不断增加的服务器负载压力,主要可以从两个方面加以解决。一方面, 可以从客户端入手,深入研究c a c h e 技术。在客户端使用c a c h e 技术以缩小响应 时间,这种技术可以在现有服务器设备的基础上尽可能地提高系统的性能,但性 能提高的力度是有限的。 另一方面,可以从服务器的硬件性能来考虑: 方案一:从单台服务器性能入手,以高昂的价格换取性能的提高。提高单服 务器节点的性能分为硬件扩充和软件扩充两种。硬件扩充是指在原有服务器节点 上增加c p u 、磁盘和网络接口等资源,或者采用更大型的服务器节点。软件扩充 是指在软件层次上充分挖掘单服务器的潜力。 方案- - - :从体系结构入手,将过去单一的服务器模式扩充为多服务器配合运 行模式,用多台计算机来协作完成本来由一台服务器完成的功能,这就是集群技 术。这种技术可以显著提高服务器的总体性能,并且具有良好的可扩展性与高可 靠性【2 】。 将两个方案进行对比,很明显,第一种方案不能有效地满足急速增长的负载 和可靠性需求。不但升级过程会造成服务中断,而且对淘汰资源的浪费使得维护 第一章绪论 3 成本居高不下。所以,随着i n t e m e t 在线人数的持续增长,决定了硬件扩充不能作 为网站建设的长远解决方案;软件扩充虽然在一定程度上提高了服务器性能,但 是单点故障的问题依旧存在。 方案二的w e b 服务器集群系统是一组互相独立的计算机,由网络互连组成一 个单一的计算机系统,并以单一系统的模式加以管理。它可以提供与超级计算机 相当的任务处理能力。它采用负载均衡策略将到达的请求分配给集群中的某台服 务器进行处理,并且通过数据冗余和软件监测等方法实现系统的高可用性。在这 种方法中,不要求单个w 曲服务器具有很高的性能。当w 曲服务器集群不能满足 用户需要时,在集群中加入一个或数个普通的w e b 服务器即可,经济可行。当集 群中的某个服务器发生故障时,其它服务器可以提供服务,所以集群系统可以提 供不问断的可靠服务。因此,采用w e b 服务器集群系统是解决问题的最佳方案。 它的主要优点是可利用普通的p c ( p e r s o n a lc o m p u t e r ) 机、工作站、服务器多个 节点,系统造价低,具有可扩展性和较高的性价比。 集群是通过将任务分配给多个服务器并行分布处理以获得整体的高性能。任 务过多或过少的分配到某台服务器上,常常会导致局部过忙甚至失效的问题,造 成系统资源的浪费,也影响到整体的性能,使集群不能发挥本身的优势。所以对 于提高w e b 服务器的性能问题而言,在集群系统中如何合理分配任务,即负载均 衡成为关键问题i 引。 1 2 研究现状 由于集群系统的优越性能,国外各大研究机构及企业都对集群的研究与应用 进行了探索。美国d e c ( d i g i t a le q u i p m e n tc o r p o r a t i o n ) 公司开发的v m s c l u s t e r 系统 开发最早,技术也较成熟,应用也很广泛;u n i x 是服务器或工作站上普遍使用的 操作系统,它运行稳定、安全性也比较好,因此许多大的公司都采用了基于u n i x 的集群系统解决方案,如d e c 、h p 、s u n 、n c r 和d g 等公司,其中在国内影响 比较大的主要是d e c 、h p 、s u n 和i b m ;基于w i n d o w s n t 的集群系统解决方案 厂商主要有m i r c r o s o f l 和d e c 。m i c r o s o f t 于1 9 9 5 年就开始了集群系统的开发工作。 w i n d o w s2 0 0 0 中己经增加了集群功能,该高可用性集群叫做w o l f p a c k ,也叫做 m i c r o s o f tc l u s t e rs e r v e r ( m c s ) :t u r b o l i n u x 公司推出了能够显著地提高基于t c 肌p ( t r a n s m i s s i o nc o n t r o lp r o t o c o l i n t e r n e tp r o t o c 0 1 ) 协议的多种网络服务质量的高可 用性集群系统t u r b o c l u s t e r ;r e d h a t 也提供了基于l i n u x r t u a ls e r v e r 思想构建的 高可用性集群系统p i r a n h a ;p l a t f o r m 公司开发的高可用性集群系统l s f 提供了分 布式集群系统的解决方案,通过将物理上分离的多个集群连接在一起使多个同构 或异构的计算机能够通过局域网或广域网共享计算资源,并能够为用户提供对资 4 w e b 服务器集群负载均衡技术研究 源的透明访问;日本的f 5 公司开发出了高可用性集群b i g i p ,它是一种高可用的、 智能化的负载平衡产品,提供了对网络流量自动和智能的管理。与前几种集群不 同的是,b i g i p 向用户提供的是一个即播即用设备,而其它提供的都是软件方法。 国内也有不少公司进行了集群系统的研究和开发工作。联想公司在1 9 9 9 年9 月推出了用于分布式高性能计算的n s l 0 0 0 0 高性能集群服务;朗讯公司也推出了 类似于t u r b o c l u s t e r 的高可用性集群系统l o n g s h i n ec l u s t e rs e r v e r :1 9 9 9 年9 月2 0 日,中国第一家专业面向l i n u x 高端应用市场的集群网络有限公司推出了国内首例 l i n u x 安全集群系统。它是国内第一个通过公安部认证的安全l i n u x 系统,而其集 群技术也已应用于诸多国际著名网站,如l i n u x 的门户w w w 1 i n u x c o m 、英国国家 j a n e tc a c h e 网、奥地利的入口站点和瑞士电信等。其核心代码也己被纳入美国 r e dh a tl i n u x 发布版的核心。 w e b 集群负载平衡的方法主要可以从客户端、服务器和网络端进行。基于客 户机的方法如b e r k e l e y 的s m a r tc l i e n t ,把负载分散到客户端,但调度不够灵活有 效,n e t s c a p e 的n a v i g a t o r 也曾经采用这种方式。y a h o o 采用的服务器端r r d n s ( r o u n dr o b i n d o m a i nn a m es y s t e m ) 通过d n s 重新分配负载,但不能区分集群 中各服务器的差异,又受到1 几( t i m et ol i v e ) 的限制。e d d i e 、r e v e r s e p r o x y 和s w e b 使用基于应用层调度的方法来建立一个可扩展的w e b 服务器集群,将到 达的h t r p ( h y p e rt e x tt r a n s p o r tp r o t o c 0 1 ) 请求转发到不同的w e b 服务器,但因 其工作在应用层系统开销比较大。b e r k e l e y 的m a g i c r o u t e r 和c i s c o 的l o c a l d i r e c t o r 使用服务器端的i p ( i n t e r n e tp r o t o c 0 1 ) 层负载平衡调度方法,但还只是研究原型, 没有成为有用的系统。l v s ( l i n u xv i r t u a ls e r v e r ) 负载平衡在内核实现,调度性能高、 速度快,但因工作在网络层,无法灵活运用应用层的特征来分配请求1 4 j 。 从国内外的研究现状看,目前集群系统的应用大都致力于高可用性问题的解 决,真正基于负载均衡的集群系统还比较岁5 1 。对于负载调度,集群中采用的大都 是轮转调度、加权轮转调度等静态调度算法,不适于工作复杂的现实环境,最少 连接调度、加权最少连接调度等尽管在一定条件下工作不错,但这些方法都基于 一个假设,即所有连接的计算量在平均意义上是相等的,而在实际条件下一个连 接的计算量大小悬殊往往很大。目前负载平衡的调度方法并不成熟,提出更快更 好的调度方法非常有意义1 6 j 。 1 3 论文的主要工作 本课题启发于f r c e p p 系统研究项目。该系统在成功商业运行后,a p a c h e 服务 器每天处理的客户请求量与日俱增,对现有w e b 服务器性能提出了考验。随着 f r e e p p 系统的广泛应用,采用基于负载均衡的集群系统将势在必行。 第一章绪论 5 本文主要是深入了解目前w e b 服务器负载情况以及造成w e b 服务器负载过重 的原因;分析提高网络服务能力的有效途径,研究这些途径的优点及不足;研究 现有的w e b 服务器集群系统和成熟的负载均衡技术;提出一种新的动态负载均衡 d f ( d y n a m i cf e e d b a c ks c h e d u l i n g ) 算法;对d f 算法进行理论分析设计以及性能 评估,体现d f 算法在集群系统中的优越性。 1 4 论文内容安排 本文主要研究了w e b 服务器集群系统和负载均衡技术,预计提出一种新的d f 负载均衡算法,以优化w e b 服务器的性能。 第一章介绍优化w e b 服务器性能的必要性,分析提升网络服务能力的两种方 案,介绍关于本课题的国内外研究现状。 第二章分析有关w e b 服务器集群系统和负载均衡的理论基础,重点阐述负载 均衡相关问题。 第三章研究现有的负载均衡模型系统,以及目前使用的w r c b 服务器负载均衡 关键技术。 第四章在深入研究现有w e b 服务器负载均衡调度算法的基础上,提出改进的 动态负载均衡算法即d f 算法,并且运用数学理论进行算法分析和理论设计。 第五章根据d f 算法的设计思想采用集中式负载均衡策略,用纯软件方式对 d f 算法进行模拟,并运用相关工具进行性能测试。 第六章进行全文总结,指出还未解决的问题,提出下一步的工作计划。 一 第二章负载均衡相关问题分析 7 第二章负载均衡相关问题分析 在了解了w e b 服务器集群系统提出的背景后,可以发现采用w e b 服务器集群 将显著提高服务性能。在本章将详细介绍有关w e b 服务器的技术,分析集群系统 的特点,阐述负载均衡技术的必要性和重要性。 2 1w e b 服务器技术分析 w e b 服务器是一个分布式的超文本信息系统。它基于客户端和服务器模型, 采用h t r p 协议,使用w e b 浏览器和用户交互静态及动态信息。从功能上讲,w e b 服务器监听用户的h t i p 请求,根据请求的类型进行相应处理并返回h t i p 应答。 图2 1 描述了这一过程。 2 1 1w e b 技术的优点 图2 1w e b 访问模型 在当前互联网的主要业务中,无论从服务器的数量还是网络信息流量来说, w e b 服务都占有绝对的优势。统计表吲1 :基于t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) 协议之上的w e b 流量在i n t e r n e t 总流量中所占比例已经超过6 0 。 w e b 技术具有如下优点:链接性,可以从一个位置跳动到另一个位置,内容 之间不存在很大的相关性,这样就可以将一个网络连接作为基本的力度进行负载 计算和负载调度;图形化及易于导航,w e b 非常流行的一个很重要的原因就在于 它可以在一页上同时显示色彩丰富的图形和文本的性能。在w c b 之前i n t e r n e t 上的 信息只有文本形式,w e b 可以提供将图形、音频、视频信息集合于一体的特性。 同时,w e b 是非常易于导航的,只需要从一个链接跳到另一个链接,就可以在各 页各站点之间进行浏览了;平台无关性,无论你的系统平台是什么,你都可以通 过i n t e r n e t 访问w w w ( w o r l dw i d ew 曲) 。浏览w w w 对你的系统平台没有什么 限制,无论从w i n d o w s 平台、u n i x 平台、m a c i n t o s h 还是别的什么平台我们都可 以访问w w w 。对w w w 的访问是通过一种叫做浏览器( b r o w s e r ) 的软件实现的, 如n e t s c a p c 的n a v i g a t o r 、n c s a 的m o s a i c 、m i c r o s o f t 的e x p l o r e r 等;分布性,大 一 8 w e b 服务器集群负载均衡技术研究 量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的 多少。对于w e b 服务没有必要把所有信息都放在一起,信息可以放在不同的站点 上。只需要在浏览器中指明这个站点就可以了,使物理上并不一定在一个站点的 信息在逻辑上一体化;动态性,由于各w e b 站点的信息包含站点本身的信息,信 息的提供者可以经常对站上的信息进行更新。如某个协议的发展状况,公司的广 告等等,一般各信息站点都尽量保证信息的时间性。所以w e b 站点上的信息是动 态的而且经常更新的,这一点是由信息提供者保证的;交互性,首先表现在它的 超链接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过f o r m 的形 式可以从服务器方获得动态的信息。用户通过填写f o r m 可以向服务器提交请求, 服务器可以根据用户的请求返回相应信息。由于w e b 技术具有以上所述的诸多优 点,所以w e b 服务已成为国际互联网中最重要的服务之一,w e b 服务器在人们的 工作学习中也扮演着越来越重要的作用。 2 1 2w e b 请求的内容 w e b 请求的类型按照应答内容可以分为两类:一类是静态请求,对于这种请 求的应答内容一般不需要变化,如以“h t m l 为后缀的超文本文件;另一类是动 态请求,应答这类请求时,返回给客户端的内容是在浏览器访问w e b 服务器时由 应用程序根据请求的属性( 时间、用户等) 来动态创建的。 动态请求的生成要求w e b 服务器增加一种运行外部程序的机制,这种机制被 称为公共网关接e lc g i ( c o m m o ng a t e w a yi n t e r f a c e ) i s l 。c g i 是一种标准,它规 定了w e b 服务器与外部程序进行交互实现动态请求的接口规范。这种特定的外部 程序被称为c g i 脚本( s c r i p t ) 。c g i 定义了w e b 服务器传递信息到它调用的程序 的协议,这是通过在程序被调用之前,由w e b 服务器设置能被程序访问的环境变 量实现的。由于c g i 程序易于开发,它能很快地建立应用系统原型,而且对软硬 件环境基本没有限制,因此c g i 是一种得到广泛应用的生成动态w e b 内容的方法。 除了c g i 脚本方式外,目前产生动态请求生成的方法还有很多种,包括a s p ( a c t i v es e r v e rp a g e ) 例、p h p ( p e r s o n a lh o m ep a g e ) l l o l 和j s p ( j a v as e r v e rp a g e ) 1 1 1 j 。a s p 是微软提出的一种嵌入到h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ) 页面中的 脚本语言,其语法采用v b s c r i p t 。由于通用的w e b 服务器系统并不支持a s p ,所 以其应用不具备可移植性。j s p 是s u n 提出的动态页面技术,与a s p 的思想很相 似,但是它采用了j a v a 语言作为脚本描述语言,因此可移植性很好。 静态文档的访问只需要读取磁盘文件,而动态文档的访问需要进行额外计算 来生成页面内容,因此,动态文档访问的开销一般要大很多。这是w e b 服务器性 能优化技术研究中所要考虑的重要因素。 第二章负载均衡相关问题分析 9 2 1 3w e b 请求的处理机制 目前的w e b 服务器软件对h t t p 请求的处理有多种不同的机制,所采用的调 度和资源分配方式也不相同。 早期的w e b 服务器借鉴了传统u n i x 系统的客户服务器模型,通过创建子进 程来处理每个h t r p 连接。但是每次创建进程的开销往往比较大,因此后来一些 服务器,比如n c s a 的h t t p d 1 2 j ,采用了预先创建进程的方式。在服务器初始化阶 段预先创建多个进程,形成一个进程池,其中一个称为主进程,它负责接收客户 端的请求,并将请求分配给其中一个预先创建的工作进程处理,这样就避免了不 断创建进程所带来的系统开销。这种机制中的每个进程只有一个线程。 在此基础上的改进是去掉主进程的概念,让每个预先创建的进程直接接收请 求。当客户端试图连接时,服务器从进程池中选择一个空闲进程,由它来接受这 个请求并为它提供服务;当这个进程完成服务时,把它重新变成空闲进程放回进 程池。i n t e m e t 应用最广泛的a p a c h e 服务器就采用了这种请求处理机制【1 3 1 。 2 1 4w e b 服务器体系结构的发展 随着i n t e r n e t 的飞速发展,w e b 服务器技术也经历了很大的变化,其主要经历 了以下几个阶段: 至今为止,w e b 服务器技术经历了三次主要变革,第一次变革是由于c + + 语 言和数据库技术的重大发展,使得w e b 服务器由单一模式转变为客户朋艮务器模式; 第二次变革是由于j 2 e e 技术的诞生,w e b 服务器发展为三层体系结构模式;第三 次变革是由于集群技术的飞速发展,使得w e b 服务器逐渐向集群模式转变。 1 客户服务器模式 最早的网络系统是简单的主机终端系统,所有的应用程序都由主机完成,终 端只是运行服务器上相应的程序。随着计算机网络和计算机应用的发展,开辟了 网络应用的新模式c s ( c l i e n t s e r v e 卜一客户服务器) 模式。c s 模式是一种两层结 构的系统,第一层是在客户机上运行的表示逻辑与业务逻辑,第二层则是通过网 络运行的数据库等服务器系统。c s 模式将事务分开进行处理,实现了网络的分布 式计算。然而c s 模式在系统的集成与维护、操作界面一致性、系统的扩展性等 方面都存在明显的局限性。 2 三层结构模式 基于w e b 技术的i n t e m e t 近年来已经得到了广泛应用,i n t e r n e t 是以t c p 口协 议为基础、以w e b 为核心的企业内部网,用户通过客户浏览器可以随时随地到企 业的w e b 站点上查阅自己所需的数据。客户端浏览器操作界面的一致性避免了c s 模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方 1 0 w e b 服务器集群负载均衡技术研究 便地通过i n t e m e t 与外界联系;同时,w e b 信息动态的、交互式的发布方式从根本 上改变了企业的服务质量,增加了企业的商业机会。 在三层结构的w e b 技术中,数据库不是直接向每个客户机提供服务,而是与 w e b 服务器沟通,实现对客户信息服务的动态性、实时性和交互性。这种功能是 通过诸如c g i 、i s a p i 、n s a p i 及j a v a 创建的服务器应用程序实现的。如图2 2 所 不。 用户界面卜k f ii 。i。iil 工 i 中间件业务逻辑:w c b 服务器及应用服务器 : l 后台存储系统:数据库系统等 图2 2w e b 三层结构体系 最初的w e b 服务器所支持的应用只是简单的h t m l 文件和图像的浏览,这只 是一个基础功能。w 曲应用最重要的一个扩展是动态内容的引入。例如,w e b 服 务器可以根据用户输入的请求,直接或间接地创建w e b 网页,然后返回给w e b 浏 览器。 3 集群服务器 在系统运行时,用户点击率和对动态内容的需求量往往数量较大且分布密集, 这就要求w e b 服务器必须支持这一要求。但事实上,即使再高档的服务器设备, 面对不断增加的用户,单位时间内所支持的访问量也会有一个限度,尤其是对于 动态内容较多的情况。这是因为动态内容的应用需要频繁地调用数据库和应用程 序,从而占用大量的服务器资源。显然,单机服务器已经很难满足这种需求。 一组w e b 服务器通过高性能网络互相连接起来,从用户角度看来,呈现单一 的w e b 服务器,这就构成了w e b 服务器集群。它通过连接一组计算机对客户同时 提供服务,实现分布负载、降低用户请求的响应时间及扩展w e b 服务器应用的目 标。这种松散耦合结构比单机服务器或者紧耦合多处理服务器系统具有更好的可 伸缩性和性能价格比。 2 2 集群概述 2 2 1 集群的概念 集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开 第二章负载均衡相关问题分析 始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不 为大家所熟知。直到l i n u x 集群的出现,集群的概念才得以广为传播。 对集群的研究起源于它所具备的良好的性能可扩展性( s c a l a b i l i t y ) 。提高c p u 主频和总线带宽是最初提高计算机性能的主要手段,但是这一手段对系统性能的 提供是有限的【1 4 j 。接着人们通过增加c p u 个数和内存容量来提高性能,于是出现 了向量机、对称多处理机( s m p ,s y m m e t r i cm u l t ip r o c e s s i n g ) 等。但是当c p u 的个 数超过某一阈值,s m p 这些多处理机系统的可扩展性就变得极差,主要瓶颈在于 c p u 访问内存的带宽并不能随着c p u 个数的增加而有效增长。与s m p 相反,集 群系统的性能随着c p u 个数的增加几乎是线性变化的。图2 3 显示了这种情况。 一 小刁乙1 _ l 脯 丰重托夏练,一- 图2 3 几种计算机系统的司扩展性 所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它 们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传 送,实现分布式计算。广义的讲,一个集群是相互独立的一些系统作为一个系统 工作,它们构成了一个组,称为集群。一个客户与集群相互作用时,集群像是一 个独立的服务器。目前,计划扩展系统能力的用户必须购买昂贵的最新的服务器, 才能获得额外所需的c p u 、驱动器和内存。采用集群技术,用户只需根据需要添 加较少的、标准的系统即可。 据统计每年由于系统停运,全美国损失4 0 亿美元。在零售业,平均每次停运 损失1 4 0 0 0 0 美元,保安业每次停运平均损失4 5 0 0 0 0 美元,集群技术使系统在故 障发生时仍可以继续工作,将系统停运时间减到最小。集群也使企业内各自独立 的服务器可以作为一个统一的系统,为未来的升级、增容提供了灵活性。 2 2 2 集群的特点 w e b 服务器集群是由一组通过高速局域网或者地理分散的广域网相互连接的 服务器节点和一个分配请求给集群中节点的负载均衡控制器组成的w e b 服务器系 1 2 w e b 服务器集群负载均衡技术研究 统。w e b 集群中的每个服务器节点在硬件上都是独立的,集群中的节点和负载分 配器一起协同工作,对外构成一个单一系统映像。负载分配器负责尽可能地将所 有到达的w e b 请求均匀的分配到各服务器节点,提高系统总体吞吐率,减少用户 的平均到达时延和获得响应的等待时间。 总体吞吐率2 主譬甏笔毳篙淼 。2 1 ) y 从用户发生请求i 到收到应答时间i 平均应答时延鱼,系蓊页面嚼两弱矗f 鬲r ( 2 2 ) w e b 服务器集群有如下特剧1 5 l : 1 高性能:一个w e b 服务器集群系统由多台w e b 服务器组成,对外部而言, 整个集群就如同一台高性能w e b 服务器,系统只有一个对外的网络地址( 主机名 或i p 地址) ,所有的h t r p 请求都发到这个地址上。系统中有专门的机制能够将这 些请求按照一定原则分发到集群中的各台服务器上,让它们各自分担一部分工作。 2 可扩展性:w e b 服务器集群系统的组成结构和工作原理决定了它能够比较容 易地达到较好的可扩展性,因为扩大系统规模非常容易,只要在网络中增加新的 w e b 服务器计算机即可。 3 高可用性:w e b 服务器集群系统将会在各种商业应用领域中占有举足轻重的 地位。商用系统最重视系统的可靠性和容错性,二者合在一起称为系统的可用性。 常用的系统可用性指标有系统平均无故障时间、期望不间断工作时间及年平均故 障率等。由于w e b 服务器集群系统中各台w e b 服务器之间相对独立,采用一些不 太复杂的技术就能使w e b 服务器集群系统达到很高的可用性。一些商用产品中已 经部分实现了这种技术。此外,w e b 服务器集群系统还具有价格便宜、能够保护 原有投资等特点。 4 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。 服务器集群为任务关键型行业应用程序提供了一个高可用性平台。这些应用 程序通常包括数据库服务器( 例如m i c r o s o f ts q ls e w e r ) 、邮件和协作服务器( 例如 e x c h a n g es e r v e r ) 以及基础结构服务器( 例如文件服务器和打印服务器) ,这些服务器 集群也同样具有以上特点。 2 2 3 集群的分类 按照侧重点的不同,可以把集群分为三类1 1 6 1 。一类是高可用性集群,运行于 两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提供服 务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集群中 第二章负载均衡相关问题分析 1 3 比较著名的有t u r b o l i n u xt u r b o h a 、h e a r t b e a t 、k i m b e r l i t e 等。第二类是负载均衡 集群,目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量 的w e b 服务。负载均衡集群往往也具有一定的高可用性特点,t u r b o l i n u xc l u s t e r s e r v e r 、l i n u xv i r t u a ls e r v e r 都属于负载均衡集群。另一类是超级计算集群,按照 计算关联程度的不同,又可以分为两种。一种是任务片方式,要把计算任务分成 任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总,生成 最终计算结果。另一种是并行计算方式,节点之问在计算过程中大量的交换数据, 可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类型的数 据处理工作。有了超级计算集群软件,企业利用若干台p c 机就可以完成通常只有 超级计算机才能完成的计算任务。这类软件有t u r b o l i n u xe n f u s i o n 、s c o r e 等。 高可用性集群与负载均衡集群的工作原理不同,适用于不同类型的服务。通 常,负载均衡集群适用于提供静态数据的服务,如h t r p 服务;而高可用性集群 既适用于提供静态数据的服务,如h t r p 服务,又适用于提供动态数据的服务, 如数据库等。高可用性集群之所以能适用于提供动态数据的服务,是由于节点共 享同一存储介质,如r a i d b o x 。在高可用性集群内,每种服务的用户数据只有一 份,存储在共用存储设备上,在任一时刻只有一个节点能读写这份数据。 2 3 负载均衡相关问题研究 在当前的网络应用环境中,由于用户服务请求到达的随机性和集群系统中各 个服务器处理能力的差异,往往会在系统运行一段时间后出现某些网络节点任务 繁忙,而另一些节点却空闲,这样就造成了系统资源的浪费。因此如何解决任务 分配和服务节点繁忙与空闲的问题,从而有效地提高集群中系统资源的利用率就 成为负载均衡产生的原因。 负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络 中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构, 提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络 数据处理能力,提高了网络的灵活性和可用性。 2 3 1 负载均衡的概念及功能 为了改善系统的性能,通过在多台计算机之间合理地分配负载,使各台计算 机的负载基本均衡,这种计算能力共享的形式,通常被称为负载平衡。它提供了 一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络 数据处理能力、提高网络的灵活性和可用性。 负载均衡主要有两方面的含义1 1 7 l :首先,大量的并发访问或数据流量分担到 1 4 w e b 服务器集群负载均衡技术研究 多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算 分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返 回给用户,系统处理能力得到大幅度提高。 负载均衡是集群系统中的一个重要技术。集群的最大特征是多个节点的并行 和共同工作完成任务,为了让系统体现出较好的可靠性,如何让所有硬件承受的 负荷平均,不出现局部过大负载或过轻负载的情况,是负载平衡的重要目的。如 果出现局部过重负载,必然导致硬件压力比较大,老化和损坏的可能性比较大; 如果出现局部过轻负载,设备资源被搁置浪费,不符合成本最低原则。 因此,负载均衡需要实现以下五个主要功能:解决网络拥塞问题,实现服务 地理位置无关性;可以为大量访问用户提供更好的访问质量,减少用户的平均等 待时间;提高服务器响应速度,提供最短的平均任务响应时间;充分提高系统的 资源利用率;避免网络关键部位出现单点失效。 2 3 2 负载均衡的特点及优点 目前的负载均衡系统具有如下几个特点: 1 平衡集群系统的负载。 负载均衡器采用简单有效且科学合理的负载均衡算法在性能差异的服务器之 间进行负载平衡,充分利用服务器集群系统中的现有资源,提高系统的利用率, 避免性能差的服务器成为系统的瓶颈。 2 增强集群系统的可靠性。 负载均衡器定时监测服务器运行状况,如果发现系统中某台服务器发生故障 时,负载均衡器会自动把用户请求分配到其它服务器上,保证用户可以得到所需 的访问服务。负载均衡器还可通过设置每台服务器的最大连接数和采用备份服务 器等手段来进一步保证为用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床路径实施管理制度
- 骨科患者预防压疮护理
- 颈椎畸形护理质量评估方法
- 妇科护理查房:妇科急腹症的护理与处理
- 阻生齿拔除术后伤口护理的误区与正确方法
- 跌倒护理的患者参与
- 吕梁招教美术试题及答案
- 信息流中级优化师认证模拟测试题(含答案)
- 新能源汽车维修工岗中理论技术考核试卷含答案
- 氧化铝焙烧工岗前技术知识考核试卷含答案
- 重要相关方管理制度
- 成品油罐清洗的安全技术指南
- 2025+CSCO宫颈癌诊疗指南解读 课件
- 2025届新高考生物热点冲刺复习基因的表达与调控
- 数据共享与交换协议
- 老年常见病中医治疗
- QCT265-2023汽车零部件编号规则
- 美容师:中级美容师考试试题
- E446标准图谱.(250KV)课件
- 文化常识宗法礼俗节日
- 大学无机及分析化学考试题及答案
评论
0/150
提交评论