已阅读5页,还剩61页未读, 继续免费阅读
(通信与信息系统专业论文)大容量voip系统关键技术研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 v o i p 技术的发展速度虽然很快,但建设和维护大容量v o l p 系统依然是一项挑 战性的任务。当前,如何构建大容量的v o l p 系统已经成为了一个紧迫的课题。目 前,系统扩容技术主要有两种:性能优化和集群。这两种扩容技术适用于不同等 级的扩容需求。 论文在深入分析服务器系统性能优化关键技术和集群关键技术的基础上,分 别从性能优化和集群这两方面入手,以西安普罗通信f r e e p p 系统为课题来源,研 究并实现了一种大容量v o l p 系统。论文对所研究的v o l p 系统的i a x 2 注册业务流 访问数据库流程进行分析,结合排队论指出该系统的i o 瓶颈并且从性能优化角度 提出与实现了一种基于数据库动态连接池的系统扩容方案。在所研究v o l p 系统原 架构的基础上,结合i a x 2 协议,设计与实现了一个采用分布式负载均衡方式的集 群系统。在局域网环境下,论文对两种扩容方案进行仿真测试,结果初步证明: 性能优化方案能将系统容量扩大至万级;集群方案能构建一个具有一定伸缩性和 可用性的系统。 关键字:v o i p 性能优化集群扩容 a b s t r a c t c u r r e n t l y , t h e r ea r et w ok e yt e c h n o l o g i e sf o rs y s t e mc a p a c i t ye n l a r g e m e n t : p e r f o r m a n c eo p t i m i z a t i o na n dc l u s t e r t h e ya p p l yt od i f f e r e n tl e v e l so fn e e d so fs y s t e m c a p a c i t ye n l a r g e m e n t o nt h eb a s i so fr e s e a r c h i n gt h ek e yt e c h n o l o g i e so fs e r v e rs y s t e mp e r f o r m a n c e o p t i m i z a t i o na n dc l u s t e r , t h i sp a p e rd i dr e s e a r c h e sa n di m p l e m e n t e dal a r g ec a p a c i t y v o i ps y s t e mf r o ma s p e c t so fp e r f o r m a n c eo p t i m i z a t i o na n dc l u s t e rs e p a r a t e l y t h i s p a p e ra n a l y z e dt h ei a x 2r e g i s t r a t i o ns e r v i c ef l o wo ft h ev o i ps y s t e mr e s e a r c h e d , p o i n t e do u tt h ei 0b o t t l e n e c ko ft h es y s t e mw i t hq u e u i n gt h e o r y , p r o p o s e da n d i m p l e m e n t e dap e r f o r m a n c eo p t i m i z a t i o np r o g r a mb a s e do nt h ed a t a b a s ed y n a m i c c o n n e c t i o np 0 0 1 w i t ht h eo r i g i n a la r c h i t e c t u r eo ft h e i p s y s t e mr e s e a r c h e da n di a x 2 p r o t o c o l ,t h i sp a p e rd e s i g n e da n di m p l e m e n t e dac l u s t e rs y s t e ma d o p t e dad i s t r i b u t e d l o a db a l a n c i n gm o d e t h i sp a p e rm a d es i m u l a t i o nt e s t e so nt h e s et w op r o g r a m si nt h e l a n e n v i r o n m e n t t h r o u g ht h er e s u l li ti sp r o v e dt h a tt h ep e r f o r m a n c eo p t i m i z a t i o n p r o g r a mc a ne n l a r g et h es y s t e mc a p a c i t yt ot e nt h o u s a n d1 e v e la n dt h ec l u s t e rp r o g r a m c a nb u i l das y s t e mw i t hs o m es c a l a b i l i t ya n da v a i l a b i l i t y k e y w o r d :v o l pp e r f o r m a n c eo p t i m i z a t i o n c l u s t e rc a p a c i t y e n l a r g e m e n t 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密在年解密后适用本授权书。 本人签名: 导师签名: 日期: 型阻皿 日期:f 垒车墨国! fq 第一章绪论 第一章绪论 当前运营商力推的新业务都是基于3 g ( 3 r dg e n e r a t i o n ) 和i p ( i n t e m e tp r o t o c 0 1 ) 两大热点技术的。”宽带电话”( v o i c eo v e ri n t e m e tp r o t o c o l ,以下简称v o i p ) 是在互 联网和基于i p 的数据网上进行的语音、数据传送,体现了网络融合基础上的边缘 化发展趋势,其最终目的之一是为消费者提供更加多样化、简单化、价格低廉的 实用业务;二是削减运营商的运营成本,减少资本开支;三是提供一个支持各种 增值创利的平台。因此各大运营商对此项技术的推广已经进入突破性阶段,v o i p 业务甚至成为许多传统运营商的救命稻草,成为当前通信业发展的新热点。 1 1 研究背景和意义 随着v o i p 的迅速发展,v o l p 逐渐发展成为主流业务,它不仅大量替代了传统 长途话音,而且开始渗透本地话音业务,并对固定和移动话音业务形成巨大挑战。 当前,v o i p 发展出现综合化、无线化和视频化趋势。多样的应用、丰富的功能将 会促进v o i p 市场进一步快速的发展。欧洲市场认为今后v o l p 发展将从受制于宽 带发展转变为推动宽带发展,v o i p 将成为促使当前由宽带和移动接入主导的通信 市场过渡到一个新的通信市场的关键因素 i - 2 1 。 v o l p 技术的发展速度虽然很快,但建设和维护大容量v o l p 系统依然是一项挑 战性的任务。一方面,v o i p 用户爆炸性增长对v o i p 系统的硬件造成的压力越来越 大,v o i p 服务器作为v o i p 系统的核心承受的压力更是巨大,使其很容易成为整个 系统的瓶颈。高性能成为v o i p 服务器的一个重要指标。另一方面,高带宽的多媒 体应用,譬如网络视频会议、音频视频点播( a o d v o d ,a u d i oo nd e m a n d v i d e oo n d e m a n d ) 、股市行情发布、多媒体远程教育、计算机支持协同工作( c s c w ,c o m p u t e r s u p p o r t e dc o o p e r a t i v ew o r k ) 、远程会诊发展也同样大大的加大了服务器端的压力。 但由于单机中央处理器( c p u ) 和输入输出( i o ,i n o u t ) 瓶颈的约束,即使按照当时最 优配置建设的网络,服务器也很快会感到吃不消。塔式、机架和刀片服务器应运 而生,也推动着存储网络技术、i t ( i n f o r m a t i o nt e c h n o l o g y ,信息技术) 优化技术的 发展,如云计算、虚拟化等。 当前,如何构建大容量的v o l p 系统已经成为了一个紧迫的课题。构建大容量 v o l p 系统关键是构建大容量v o l p 服务器平台,因此如何构建大容量v o l p 服务器 平台成为v o l p 系统扩容中亟待解决的问题。 2 大容量v o i p 系统关键技术研究与实现 1 2 研究现状 作为网络应用的一种,要实现大容量,v o l p 应用与其他网络应用如w e b 服务 等一样也要面临相似的问题网络瓶颈和服务器性能瓶颈问题。近年来,随着 网络硬件的迅速发展,网络带宽的瓶颈效应逐渐减弱 3 - 5 1 ,服务器的性能问题逐渐 突显出来。从目前的研究方向看,服务器方向的研究可以归结为两个方面。 首先是从实现机制上入手,主要研究c a c h i n g 技术、预存取技术等。这方面 从客户访问行为分析入手,研究可以缩小响应时间的方法,这些技术可以在现有 服务器设备的基础上尽可能地提高系统的性能,具有较高的性价比,但这种方法 对服务器性能的提高有限。 同时从体系结构入手,将过去单一的服务器结构扩充为集群式服务器结构。 这种改造可能需要增加较大的开销,但可以显著提高服务器的总体性能。表1 1 对 两种方式进行比较。 表1 1 两种方式比较 体系结性价比 软件技术研究 研究核心 从实现 构研究 体制入 单服务较高,但对服协议分析p r o t o c o la n a l y s i s 手 器务器性能的 缓存机制c a c h i n g 提高有限 预存取技术p r e - f e c h i n g 预创技术p r e c r e a t i n g 如何缩小服务器系统 请求调度r e q u e s ts c h d u l i n g 的响应时问 从体系集群服开销比较人, :h 点分发 结构入务器但能以很高 手的性价比满 足海量扩容 需求 由于性能优化具有高性价比特性,对中小型企业( s m a l la n dm e d i u m e n t e r p r i s e s ,以下简称s m b ) 来说,这是最高性价比的扩容方案【6 。】。优化服务器性 能成为当前研究的一个热点,许多服务器制造商都在努力推出性能更加优良的服 务器,但单一服务器结构有一个致命的缺陷,那就是由于服务器的处理能力有限, 有可能会出现死锁的情况。死锁的产生是由于新请求的到达率大于系统服务率, 系统没有能力在短期内处理所有的请求,导致等待队列溢出,系统由稳定状态转 为不稳定状态,最后崩溃。对称多处理( s y m m e t r i c a lm u l t i p r o c e s s i n g ,以下简称 s m p t 8 1 ) 结构的计算机能对提高单一服务器并行处理能力有一定程度的贡献,但它 在性能上会受到c p u 数量、主存和总线带宽的制约。可扩展性好的大规模并行处 理机( m a s s i v e l yp a r a l l e lp r o c e s s i n g ,以下简称m p p ) 则存在使用困难、支撑软件少、 应用领域窄等问题。因此,在海量用户接入v o l p 系统时,如何能够保证一个v o i p 系统:处理速度快、吞吐量大、可用性高,而且还需要具有良好的可扩展能力, 第一章绪论 逐渐成为各个大型v o i p 供应商倾注极大热情去解决的重大问题,并且解决的方案 不约而同的采用了能够提供高性能价格比的集群技术。 作为新兴的并行计算机的一种,集群结合了工作站集群( n o w , n e t w o r ko f w o r k s t a t i o n s ) 系统、m p p 技术及s m p 技术的特点,充分利用了网络及单机性能优 势,成为高性能计算机体系结构的发展趋势。集群系统还具有性能价格比高、可 扩展性好等特点。在目前的集群解决方案中,如l i n u x 虚拟服务器( l i n u xv i r t u a l s e r v e r ,以下简称l v s l 9 1 ) ,已经能够从性能、可用性、并行处理、并行网络服务 的多方面实现多节点间的协同工作。e s i r ( e f f i c i e n c y , s c a l a b i l i t y , i n d e p e n d e n c ea n d r e l i a b i l i t y ) ,c h a a ( c o o p e r a t i o n o r i e n t e dh i e r a r c h i c a la u t o n o m i ca r c h i t e c t u r e ) 等方案 1 0 - 1 4 1 提出了各种架构和方法提高集群可靠性、可管理性、可扩展性、可用性、集 群效率和q o s 等。同时,很多大型网络通信企业、政府和学校纷纷投资研究集群 技术,国际也成立了研究机构专注研究集群计算技术,其中i e e e ( i n s t i t u t eo f e l e c t r i c a la n de l e c t r o n i ce n g i n e e r s ,电子与电气工程师协会) 子机构t f c c ( t a s k f o r c eo nc l u s t e rc o m p u t i n g ) i s l 专注于促进集群计算研究和技术交流。在当前商用 中,谷歌,雅虎,亚马逊,还有其他企业,如百度、腾讯、s k y p e 等拥有海量用户 群的服务供应商,他们已经搭建了专用的架构支撑大容量应用,他们的方法同样 指导着全球其他网络服务供应商如何构建大规模可扩展的架构,来支撑海量计算、 存储和应用服务【i 们。以集群为基础的云计算技术、服务器虚拟化也应运而生,并 推动其他边缘技术的发展,这些技术研究大规模集群环境下如何降低i t 基建费用、 提高硬件利用率和更好管理终端用户服务等级等 d - 2 0 。集群技术逐渐成为当前系 统进行扩容的核心技术。 1 3 论文的课题来源和主要工作 论文以西安普罗通信f r e e p p 系统为课题来源,f r e e p p 系统是以当前流行的 v o l p 交换机( p b x ,p r i v a t eb r a n c he x c h a n g e 卜_ a s t e r i s k 2 1 】为服务器的通信平台。 论文从性能优化和集群这两方面入手,研究并实现了一种大容量v o l p 系统。 论文首先研究了使用性能优化技术提升单个服务器节点容量的方法,针对 f r e e p p 系统数据库访问的高密度和低数据量两大特性,论文设计与实现了一个集 合线程池、批处理、内存池等技术的数据库动态连接池来缓解服务器端的i o 瓶颈。 通过测试数据,论文对比优化前后系统容量的变化,初步证明,通过细致的性能 优化方案,可以使系统容量扩大1 0 以上。 进一步,论文研究扩大系统容量的另一种方法集群。集群的关键是实现 系统整体负载均衡,为此论文分析了开源集群系统l v s 及其负载均衡算法,同时 论文针对l v s 仍存单点失效的问题,结合f r e e p p 系统现有架构,设计并实现了一 4 火容晕v o l p 系统关键技术研究与实现 种基于应用层分布式负载均衡的集群方案。通过对f r e e p p 系统采用的i a x 2 【2 2 】 ( ( i n t e r - a s t e r i s ke x c h a n g ev e r s i o n2 ) ) 协议进行扩展,使i a x 2 协议支持负载均衡,集 群系统整体在负载均衡策略上更灵活和智能。最后,论文搭建环境对该集群系统 进行测试,通过测试数据说明该集群有效的实现了系统负载均衡,且不存在单一 失效点,整体可用性、伸缩性高,容错能力强。 1 4 论文安排 第一章介绍论文的研究背景,同时介绍了论文的课题来源和论文工作。 第二章介绍了连接池、线程池等解决软件性能瓶颈的技术。 第三章介绍了集群的定义、分类、设计要素等。重点介绍集群负载均衡技术。 第四章结合性能优化技术,对所研究的v o i p 系统i a x 2 注册业务流程进行分 析,结合排队论指出i o 瓶颈,并提出基于数据库动态连接池的解决方案。进一步 对数据库动态连接池的设计进行详细描述,最后给出测试数据。 第五章运用集群技术设计一个大容量v o i p 系统。详细介绍了该集群系统的 具体设计,包括i a x 2 协议注册信令扩展、负载均衡工作机制等,同时还介绍了集 群节点权值计算算法和部分工作流,最后给出测试数据。 第六章是对论文研究工作的一个总结并提出今后进一步研究的问题。 第二章服务器系统性能优化原理分析 第二章服务器系统性能优化原理分析 随着系统的用户数和系统包含的数据量剧增,系统的性能产生很大波动,主 要表现在系统的响应速度时间不尽人意。服务器作为系统核心,优化服务器性能 成为提升高压下系统性能的重点。 本章从服务器性能优化的角度研究扩大v o i p 系统容量的方法,主要研究了消 除服务器软件瓶颈的关键技术,通过这些技术可以有效的解决服务器端的c p u 和 i 0 瓶颈,从而提升服务器系统的吞吐量,扩大v o l p 系统的容量。 2 1 服务器系统性能指标 服务器系统是为用户提供服务的,它的性能目标可以从用户性能目标得以体 现。 从用户角度来看,性能就是快速的用户响应时问、较高的查询质量以及简明 易用的人机交互界面。这提出了服务器系统性能的三个指标查询处理的效率、 数据库吞吐量和并行处理能力1 2 3 - 2 4 。 查询处理效益表示查询处理与资源使用的关系。在完成用户相同的查询请 求的情况下,使用的资源( 存储、c p u 时间、网络通信量等) 越少,查询效益越高。 数据库吞吐量表示每秒钟数据库处理事务的多少。数据库服务器有快速 c p u ,快速硬盘,大容置内存,支持并行多处理都能提升数据库吞吐量,另外数 据库联机事务处理能力是影响数据库服务器吞吐量的一个重要的因素。 t p c ( t r a n s a c t i o np r o c e s s i n gp e r f o r m a n c ec o u n c i l ,事务处理性能委员会) 制订的基准 测试指标t p c c 用于测量联机事务处理能力。它的测试结果包括两个指标,个 是流量指标t p m c ,这个值越大越好;另一个是性价比指标p r i c e t p m c ,指的是测 试系统价格与流量指标的比值,这个值则越小越好。 并行处理( p a r a l l e lp r o c e s s i n g ) 是计算机系统中能同时执行两个或更多个 c p u 的一种计算方法,主要目的是节省大型和复杂问题的计算时间。程序设计优 化、硬件升级、采用m p p 系统和集群等方法都可以提高服务器系统的并行处理能 力。服务器系统并行处理能力越强,吞吐量越大。 另一方面,用户都希望系统能2 4 x 7 x 3 6 5 不停机、无故障地运行,这提出了服 务器性能的第四个指标:可用性。服务器的故障处理技术越成熟,可用性就越高, 而成熟的故障处理技术必须要有良好的管理手段和故障管理软件:一方面出现故 障时故障管理软件要能够自动执行系统或部件切换来避免或减少意外停机;另一 方面故障管理软件能帮助管理员及时察觉及诊断故障,从根本上解决问题。目前 这方面做得较好的是i b m x 3 架构服务器。它采用一种称为”弹出式光通路诊断面 6 人容量v o i p 系统关键技术研究与实现 板”的技术,可以帮助管理员快速地定位和替换故障组件,减少服务器的宕机时间, 提高系统可用性。 在目前服务器方向的研究中,无论是从实现机制还是从体系结构入手,核心 都是研究如何缩小服务器系统的响应时间。o r a c l e 公司提出的y a p p ( y e ta n o t h e r p e r f o r m a n c ep r o f i l i n gm e t h o d ) 性能调整方法,核心思想也是通过响应时间来衡量系 统的性能。该方法提出响应时间由服务器时问和等待时间组成,通过减少组成响 应时间的主要部分来缩小响应时问。 2 2 热点和瓶颈 y a p p 方法还提出的性能优化的一个重要的原则”8 0 一2 0 ”原则,该原则指出 大部分( 8 0 ) 的性能问题可能是由于小部分( 2 0 ) 的原因引起。这里指的”小部分” 就是服务系统所谓的”热点”,通过调整这些热点的性能便能使性能优化获得最大效 益。 从软件优化的角度来说,热点指的是在程序中需要最长执行时间的代码部分。 根据著名的”9 0 9 0 规则”,程序1 0 的代码量通常要消耗多达9 0 的系统资源,如 果将执行每条指令所需要的时间与指令线性地址以递增图表的形式表现出来,那 么得到的图表将给出几个明显的尖峰,这些尖峰就是所谓的热点。 瓶颈这个术语来源于玻璃瓶与瓶身相比收缩了的部分。收缩的瓶颈将引起流量 的下降,从而限制了液体流出瓶外的速度。类似的,在负载压力测试中,”瓶颈” 这个术语用来描述那些增加系统负载压力,降低系统性能的因素。因此系统瓶颈 定义为应用系统中导致系统性能大幅下降的原因。这些瓶颈主要包括i o 瓶颈、 c p u 计算瓶颈、网络带宽瓶颈等。 瓶颈通常由热点导致,调整热点的性能就能缓解或者消除这些瓶颈,最终优 化整个系统的性能。 2 3 性能优化原则与思路 由于服务器系统8 0 的性能问题都由系统热点的瓶颈产生,那么性能优化的 原则之一就是用最小的调整获得最大的优化成效。另外,性能优化一定要可量化, 否则性能优化将无从展开。 导致服务器系统性能下降的因素来自许多方面 2 5 1 ,例如i o 过载,内存不足, 网络速度低、硬件资源不足、操作系统资源不足、应用程序构架存在缺陷、软硬 件配置不恰当等等。这些因素带来的瓶颈大大降低了服务器系统性能,服务器系 统优化的任务是降低或者消除服务器系统中的瓶颈,它的总体思路是:发现瓶颈 故障定位优化调整。 第二章服务器系统性能优化原理分析 瓶颈b 丁能定位在硬件或者软件中,对软件来讲,可能定位在开发的应用程序中, 也可能定位在操作系统或者数据库内部。 一般来讲,解决硬件瓶颈的方法是简单的向服务器系统中添加c p u 、磁盘或者 内存等,但这些方法可扩展性差,如果硬件瓶颈是由于缓冲区设计或者内存总线 造成的,那么就不能通过这些方法优化或提高服务器系统的性能。 解决软件瓶颈关键是对症下药,做到药到病除。如果是产品i o 导致产生性能 瓶颈,消除它的方法可能是重新设计数据库,或者利用s m p 技术、线程池、连接 池等技术从程序设计方面缓解或者解决c p u 和i o 访问速度不匹配的问题。如果 是服务器系统程序的算法低效,导致服务器系统的c p u 严重浪费在低效的算法上, 则可以通过改进或者重新设计算法去优化服务器系统性能。 2 4 消除软件瓶颈的关键技术 硬件瓶颈与软件瓶颈相比,应该先消除软件瓶颈。主要有三个原因:1 ) 软件瓶 颈往往导致性能衰减更快,消除软件瓶颈,服务器系统性能提升更快;2 ) 人为因素 更容易导致软件瓶颈,相对来说消除软件瓶颈更节省资源;3 ) 盲目升级硬件无形中 增加维护费用,并且软硬件不匹配的问题最终会暴露出来。 目前消除软件瓶颈的技术主要通过采用预取( p r e f e c h i n g ) 、预 ! l j ( p r e c r e a t i n g ) 和缓存( c a c h i n g ) 等机制优化服务器系统软件性能,最终缩小用户响应时间。这些 技术主要有s m p 技术、池类技术、高级缓存技术等。s m p 技术通过提高服务器并 行计算能力优化服务器系统性能,为利用s m p 技术程序必须要支持并行化访问。 池类技术( 连接池、线程池、内存池等) 通过采用预创和缓存机制降低软件的系统开 销,提升软件的性能。高级缓存通过预读取机制解决c p u 和i o 访问速度不匹配 问题 2 6 - 2 7 1 。 2 4 1s m p 技术 s m p 是通过复用c p u 提供并行性的一种技术。在s m p 系统中,内核可以在 任何c p u 上执行,并且通常是每个c p u 从可用的进程或者线程池中进行各自的调 度工作。内核可以由多进程或多线程构成,允许部分内核并行执行。s m p 方法增 加了操作系统的复杂性,它必须确保两个c p u 不会选择同一个进程,并且确保进 程不会由于某种原因从队列中丢失,因此必须采用相关技术解决和同步资源的需 求。图2 1 说明了s m p 系统的一般组织结构。s m p 系统中有多个c p u ,每个都含 有它自己的控制单元、算术逻辑单元和寄存器;每个c p u 都可以通过某种形式的 互连机制访问一个共享主存和i o 设备;c p u 可以通过存储器互相通信,还可以 直接交换信号。 人容酸v o i p 系统关键技术研究与实现 s m p 服务器的主要特征是共享,系统中所有资源( c p u 、内存、i o 等) 都 是共享的。也币是由于这种特征,导致了s m p 服务器的主要问题,那就是它的 扩展能力非常有限。对于s m p 服务器而言,每一个共享的环节都可能造成s m p 服务器扩展时的瓶颈,而最受限制的则是内存。由于每个c p u 必须通过相同的 内存总线访问相同的内存资源,因此随着c p u 数量的增加,内存访问冲突将迅 速增加,最终会造成c p u 资源的浪费,使c p u 性能的有效性大大降低。实验证 明,s m p 服务器c p u 利用率最好的情况是2 至4 个c p u 。 2 4 2 线程池技术 图2 1s m p 系统组织结构 传统多线程方案中采用的模型是一旦接受到请求之后,即创建一个新的线程, 由该线程执行任务。任务执行完毕后,线程退出,这就是”即时创建,即时销毁” 的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交 给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停 的创建线程,销毁线程的状态。 将传统方案中的线程执行过程分为三个过程:t 1 、t 2 、t 3 。 t 1 :线程创建时间 t 2 :线程执行时间,包括线程同步等时间 t 3 :线程销毁时间 那么可以看出,线程本身的开销所占的比例为( t 1 + t 3 ) ( t i + t 2 + t 3 ) 。如果线 程执行的时问很短的话,这比开销可能占到2 0 5 0 左右。如果任务执行时间很 频繁的话,这笔开销将是不可忽略的,会导致产生性能问题。 线程池的出现正是着眼于解决在线程并发数量大、存活周期短的应用环境下 给系统带来的性能问题。除此之外,线程池能够减少创建的线程个数。通常线程 池所允许的并发线程是有上界的,如果同时需要并发的线程数超过上界,那么一 第一二章服务器系统性能优化原理分析 9 部分线程将会等待。而传统方案中,如果同时请求数目为2 0 0 0 ,那么最坏情况下, 系统可能需要产生2 0 0 0 个线程。尽管这不是一个很大的数目,但是也有部分机器 可能达不到这种要求。 2 4 2 1 线程池工作原理 线程池采用预创建的技术,在应用程序启动之后,将立即创建一定数量( 称为 线程池最小尺寸) 的线程,放入空闲队列中。这些线程都是处于阻塞状态,不消耗 c p u ,但占用较小的内存空间。当任务到来后,线程池选择一个空闲线程,把任 务传入此线程中运行。 为了使系统自身能动态的根据并发访问业务量动态调节线程池中线程数量, 当m i n 个线程都在处理任务,并且线程池中线程的数量没有达到规定的最大线程 数( 称为线程池最大尺寸) ,线程池自动创建一定数量的新线程,用于处理更多的任 务。在任务执行完毕后线程也不退出,而是继续保持在池中等待下一次的任务。 当系统比较空闲时,大部分线程都一直处于暂停状态,线程池自动销毁一部分动 态创建的线程,回收系统资源。 基于这种预创建技术,线程池将线程创建和销毁本身所带来的开销分摊到了 各个具体的任务上,执行次数越多,每个任务所分担到的线程本身开销则越小, 不过另外需要考虑进去线程之间同步所带来的开销。 根据执行任务的种类,对线程池来讲,系统的所有线程只有两种:触发线程 和任务线程。 触发线程的功能是主动携带任务并发放操作命令的线程。当触发线程每次要 求访问数据库时,就从线程池中取出一条空闲的线程,当线程池中没有空闲线程 且当前线程数量没有到达最大值时,触发线程负责创建新的线程加入到池中。 任务线程是完成具体应用服务的工作线程。任务线程在生命期中有三种状态: 空闲状态、活跃状态和终止状态。每一个任务线程都有一个已经设置好的任务信 号,在未投放任务前,任务线程处于空闲状态,并阻塞在此信号上,直到触发线 程向任务线程投放任务时,才向此线程发送任务信号,使任务线程从空闲状态转 化为运行状态。图2 2 为任务线程状态转移的示意图: 1 0 大容茸v o i p 系统关键技术研究与实现 :一一一一一- | 一一 n a t u r a le n d : : ,一一一一一尘一一i j 二二二二二二二二二 1 n e :一一一一一1 一一 f i n i s ht a s k : r e c v t a s k : ;& 竺壶一:广一一一一一型一一 一一一一 a c t i v e 图2 2 线程池线程状态转移图 线程池中任何线程都是分离的,任何时候,收到c a n c l e 信号都必须销毁线程 自身,释放线程占用的资源。 线程池是适用于任务项目的活动时间很短而且任务线程的并发量大的服务环 境,对于需要在任务线程进行客服对话或服务端进行费时操作( 数据库操作等) 的情 况是不适合的。 2 4 3 连接池技术 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程 序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性 和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用 一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时 间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项 技术能明显提高对数据库操作的性能。 2 4 3 1 连接池工作原理 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些 数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被 使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连 接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接 数超过最大连接数量时,这些请求将被加入到等待队列中。 在连接池中设置专门用于连接管理的空闲池。把已经创建但尚未分配出去的 连接按创建时间存放到一个空闲池中,每当用户请求一个连接时,系统首先检查 胍。1 7 k 一 一 一 时 第二章服务器系统性能优化原理分析 空闲池内有没有空闲连接。如果有就把建立时间最长的那个连接分配给用户;如 果没有则检查当前所开连接池是否达到连接池所允许的最大连接数( m a x c o n n ) ,如 果没有达到,就新建一个连接,如果已经达到,就等待一定的时i 、日j ( t i m e o u t ) 。如果 在等待的时问内有连接被释放出来就可以把这个连接分配给等待的用户,如果等 待时间超过预定时间t i m e o u t ,则返回空值( n u l l ) 。系统对已经分配出去正在使用的 连接只做计数,当使用完后再返还给空闲池。对于空闲连接的状态,可开辟专门 的线程定时检测,这样会花费一定的系统开销,但可以保证较快的响应速度。也 可采取不开辟专门线程,只是在分配前检测的方法。 数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素: 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库 连接的使用量不大,将会有大量的数据库连接资源被浪费。 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此 数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。 如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利, 之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些 大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等 待重复使用或是空闲超时后被释放。 2 4 4 高级缓存技术 如图2 3 所示,高级缓存( c a c h e ) 是位于c p u 与主存储器之间的临时存储器, 它的容量比主存储器小但交换速度快。在高级缓存中的数据是主存储器中的一小 部分,但这一小部分是短时间内c p u 即将访问的。由此可见,在c p u 中加入高级 缓存是一种高效的解决方案,这样整个内存储器( 高级缓存+ 主存储器) 就变成既有 高级缓存的高速度,又有主存储器的大容量的存储系统。高级缓存对c p u 的性能 影响很大,主要是因为c p u 的数据交换顺序和c p u 与高级缓存间的带宽引起的。 当c p u 试图读取主存储器中的一个字节时,要进行一次检查以确定这个字是 否在高级缓存中。如果在,则c p u 直接从高级缓存读取该数据;如果不在,则由 固定数目的字节组成的一块主存储器数据先被读入高级缓存,然后该块数据从高 级缓存被传递给c p u 。由于访问局部性现象的存在,可以使得以后c p u 对整块数 据的读取都从高级缓存中进行,不必再调用主存储器,从而提高系统效率。 图2 3 高级缓存与主存储器的系统结构 火容晕v o l p 系统关键技术研究与实现 2 4 4 1 高级缓存工作原理 主存储器由2 ”个可寻址的字组成,每个字有一个惟一的n 位地址。主存储器 将这些字划分成固定大小的块,每块包含k 个字,共有m = 2 “k 个块。高级缓存 中有c 个存储槽( s l o t ,也称l i n e s ) ,每个槽有k 个字,槽的数目远远小于块的数目 ( c m ) 。主存储器中块的某些子集驻留在高级缓存的槽中,由于块的数目比槽多, 一个槽不可能唯一或永久对应一个块。因此每个槽都有一个标签,用于标识当前 存储的是哪个块。标签通常是地址中较高的若干位,表示以这些位开始的所有地 址。图2 4 为地址映射示意图。 举一个简单的例子,假设有一个6 位地址和两位标签。标签0 1 表示由以下地 址单元组成的块:0 1 0 0 0 0 、0 1 0 0 0 1 、0 1 0 0 1 0 、0 1 0 0 1 1 、0 1 0 1 0 0 、0 1 0 1 0 1 、0 1 0 1 1 0 、 0 10 11 1 、0 1 10 0 0 、0 1 10 0 1 、0 1 】0 1o 、0 1 10 1 1 、o 】1 1o o 、0 1 】0 1 、0 11 110 、0 1 】1 11 。 行编 e 块y 太小 一k 个7 2 4 5 内存池技术 。一譬饮缝一叫 图2 4 高级缓存地址映射示意图 内存池是程序所需要分配内存的一个抽象表示。内存池技术使得申请内存释 放内存均极其快。其内存分配过程多数情况下复杂度为o ( 1 ) ,内存释放过程复杂 度为o ( 1 ) 。 内存池的主要作用,简单地来说是提高内存的使用效率。堆内存的申请与释 放( n e w d e l e t e 及m a l l o c f r e e ) ,涉及复杂的内存分配算法,相比由简单c p u 指令支 持的栈内存的申请与释放,则是慢上了几个数量级。另一方面,栈的大小是有限 制的,在需要大量内存的操作时,堆的使用是必要的。当然,频繁地申请与释放 堆内存,效率是很低的,这也就是内存池出现的原因。 第二章服务器系统性能优化原理分析 2 4 5 1 内存池工作原理 一般来说,内存池可以按两种维度划分:单线程与多线程,可变大小和固定 大小。其中最简单的单线程固定大小的内存池。这类内存池只考虑单线程的程序, 分配与回收的对象都是固定大小的。 对于单线程固定大小的内存池的工作流程是,首先初始化一个大小为n m 的 内存池,内存池保存有两张链表,一张用于保存空闲节点,一张用于保存已被占 用的内存节点。其中每个节点记录一些与其管理的内存块的数据,如清理函数等。 当外部发起请求要向内存池申请得到大小为l 的内存块时,系统先查找内存 池的空闲节点链表,如果查找到满足要求的节点时,则将节点取出并插入到内存 池的另一张链表中。当内存池没有满足要求的空闲内存块时,则内存池会进行一 次系统调用,从系统堆中分配得到一块l 大小的内存节点,并构造新的节点信息 记录与此内存块相关信息后,将此节点插入到内存池的标识被占用节点的链表中。 图2 5 简单描绘了内存池的工作原理。 圈 图2 5 内存池:【作原理 2 5 本章小结 l 本章介绍了系统性能优化基本思路和方法,提出了服务器系统性能指标、优 化原则和优化思路,同时介绍了消除软件瓶颈的关键技术。本章为第四章性能优 化扩大v o i p 系统容量提供理论基础与技术指导。 第三章集群技术分析 第三章集群技术分析 计算机系统设计的一个最热门的新领域足集群技术。集群技术与对称多处理 技术( s m p ) 是相对的,这种方法提供了高性能和高可用性,对构建大容量v o l p 服 务系统尤其具有吸引力。本章从不同层次深入分析集群技术。 3 1 集群概述 把多台同构或异构的计算机通过网络连接起来,用于完成特定任务的系统称 为集群系统。集群系统中的计算机称为”节点”。每个集群节点都是运行其自己进程 的独立服务器,这些进程可以彼此通信,协同起来向用户提供应用程序、系统资 源和数据,为用户提供网络服务或应用程序的单一客户视图。 在研究集群的分类时,根据集群的用途通常把集群分为三种: 高可用性集群( h a ,h i g l la v a i l a b l i t yc l u s t e r ) 高可用集群是使用多台计算机节点进行冗余化操作,将系统停止时间控制在 最小限度,提升业务可用性的集群系统。在高可用集群中,平时由主服务器对外 提供服务,在主服务器发生故障时将业务交接到待机服务器。高可用集群按照数 据存储方式区分,可分为共享磁盘型、镜像磁盘型两种。某些骨干业务系统的宕 机会给业务带来很大影响,因此此类系统不允许停止,需要引进高可用集群架构。 负载均衡集群( l b ,l o a db a l a n c ec l u s t e r ) 负载均衡集群就是带均衡策略( 算法) 的服务器群集,目的是提供和节点个数成 正比的负载能力。负载均衡集群在多节点之问按照一定的策略( 算法) 分发网络或计 算处理负载,在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器 带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。 高性能计算集群( h p c ,h i g hp e r f o r m a n c ec o m p u t i n g ) : 高性能计算集群主要用于处理大规模科学计算问题。按照计算关联程度的不 同,又可以分为两种。一种是任务片方式,要把计算任务分成任务片,再把任务 片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果。另 一种是并行计算方式,节点之间在计算过程中大量地交换数据,可以进行具有强 耦合关系的计算。这两种超级计算集群分别适用于不同类型的数据处理工作。有 了超级计算集群软件,企业利用若干台p c 机就可以完成通常只有超级计算机才能 完成的计算任务。 集群技术发展至今,主要具有以下6 大特点,这些特点使集群技术能很好满 足构建网络服务系统所需要的可伸缩性和可用性要求,利用集群技术可以搭建性 价比很高的大容量网络服务器系统 2 8 - 3 0 : 1 6 人容量v o l p 系统关键技术研究与实现 集群都是将普通p c 机、工作站或服务器通过某种方式连接起来构成的多 机系统。 集群系统都具有良好的可用性,即它们都能够在集群的某一部分资源出现 故障的情况下继续向用户提供持续的服务。 集群系统有良好的可扩展性。只需很少的配置工作就可以方便地向集群中 加入或删除工作节点。 典型的集群系统提供了良好的可管理性。管理人员通过简单的操作就可以 对集群中的工作节点或控制节点进行配置工作。 集群系统一般都提供了负载均衡功能。负载均衡包括静态负载均衡和动态 负载均衡,为了最大程度地利用集群中的一切资源,集群需要具有动态负载均衡 功能,它能够通过监视集群中的实际节点的负载情况并动态地进行均衡的改变。 大部分集群系统都有一个主控节点,它能够对集群中的机器的运行状态进 行监视,而且能够根据各机器的负载轻重进行任务的均衡。 3 2 集群设计要素 在使用或者构造一个集群之前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农业科技与现代农业发展专业考试题
- 2026年如何快速通过CISM认证考试从模拟题中寻找答案
- 2026年烹饪技艺进阶中西餐烹饪技巧与食材搭配题目
- 语言学高级研修班2026年语言学及应用语言学试题
- 2025年商务会议组织与管理操作手册
- 2026年汽车维修技师技术操作与故障诊断题库
- 2026年网络安全管理师高级预测模拟题
- 2026年艺术教育试题集艺术工作者医保待遇资格审核要点
- 劳动派遣培训
- 2025年水利设施养护与维修操作手册
- 腊味宣传课件及教案
- 2025-2030中国压缩饼干市场销售渠道与未来竞争力优势分析报告
- T/CCPITCSC 120-2023中国品牌影响力评价通则
- 医学检验免疫课件
- 农村土地永久性转让合同
- 中建市政道路施工组织设计方案
- 财务先进个人代表演讲稿
- 年度得到 · 沈祖芸全球教育报告(2024-2025)
- DB23T 2689-2020养老机构院内感染预防控制规范
- 2025届天津市和平区名校高三最后一模语文试题含解析
- 建筑施工现场污水处理措施方案
评论
0/150
提交评论