(计算机软件与理论专业论文)web应用服务器动态资源调度关键技术研究.pdf_第1页
(计算机软件与理论专业论文)web应用服务器动态资源调度关键技术研究.pdf_第2页
(计算机软件与理论专业论文)web应用服务器动态资源调度关键技术研究.pdf_第3页
(计算机软件与理论专业论文)web应用服务器动态资源调度关键技术研究.pdf_第4页
(计算机软件与理论专业论文)web应用服务器动态资源调度关键技术研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机软件与理论专业论文)web应用服务器动态资源调度关键技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

l l i l lllii l f li i itir lliil y 17 3 8 2 4 9 广西大学学位论文原创性声明和学位论文使用授权说明 学位论文原创性声明 本人声明:所呈交的学位论文是在导师指导下完成的,研究工作所取得的成果和相 关知识产权属广西大学所有,本人保证不以其它单位为第一署名单位发表或使用本论文 的研究内容。除已注明部分外,论文中不包含其他人已经发表过的研究成果,也不包含 本人为获得其它学位而使用过的内容。对本文的研究工作提供过重要帮助的个人和集 体,均已在论文中明确说明并致谢。 论文作者签名: 甫复 学位论文使用授权说明 凶i 一年b 月乙日 本人完全了解广西大学关于收集、保存、使用学位论文的规定,即: 本人保证不以其它单位为第一署名单位发表或使用本论文的研究内容; 按照学校要求提交学位论文的印刷本和电子版本; 学校有权保存学位论文的印刷本和电子版,并提供目录检索与阅览服务; 学校可以采用影印、缩印、数字化或其它复制手段保存论文; 在不以赢利为目的的前提下,学校可以公布论文的部分或全部内容。 请选择发布时间: 函口时发布口解密后发布 ( 保密论文需注明,并在解密后遵守此规定) 论文作善签名:0 哼矗 导师签名出车乎江曲口年口多月z 乙日 l w e b 应用服务器动态资源调度关键技术研究 摘要 随着企业应用环境逐渐向i n t e m e t 网络分布式计算环境转移,企业级 w e b 应用呈现出复杂性、动态性等特征,对位于中间件层的w e b 应用服务器 性能优化提出了更高的要求,其中资源的利用和调度是影响服务器性能的 关键问题。论文对w e b 应用服务器的资源调度问题进行研究,对其中的动态 线程池管理机制和缓存替换策略开展工作,研究了利用启发式因素提升线 程池处理用户请求和用语义缓存提高数据利用率的解决方案,以达到提升 w e b 应用服务器性能的目标。 首先,针对w e b 系统高负载高并发的特点以及如何在w e b 应用服务器运 行期间动态调整线程池大小的问题,设计了一种动态线程池模型h d t p q s 。 它在用户请求排队时,利用m m 1 k o o f c f s 排队系统减少用户请求的等待 时间,然后通过响应系数和阻塞线程指标两个启发式因素来触发线程的创 建、阻塞,实现运行过程中线程池大小的动态调整。实验表明利用h d t p q s 模型可使服务器在运行过程中动态调整线程池大小,提升了服务器的响应 时间和吞吐量。 其次,大量用户请求频繁与数据库交互会严重影响w e b 应用服务器的性 能,缓存技术可用于减少请求与数据库的交互开销、提高服务器的响应速 i i 度。已有缓存替换策略主要考虑缓存对象本身属性,致使缓存命中率不高。 为此,研究了在w e b 应用服务器中引入语义缓存,用语义描述后端数据库对 象的关系片,在查询缓存时利用语义信息进行匹配,然后追踪分析用户访 问时间性、访问内容量、业务关联三个特征,获取三个特征的引用率,在 此基础上构建基于用户访问特征的缓存替换算法。实验表明,缓存的命中 率有所提高,应用服务器的响应时间和吞吐量也得到改善。 最后,在开放源代码的j b o s s 4 2 1 应用服务器上对上述工作进行了原型 研究和实验,引入动态线程池模型和语义缓存替换策略的实现,利用典型 w e b 应用测试用例,在具有代表性的测试场景中,对原型系统进行了性能测 试。实验表明,原型系统在响应时间和吞吐量等性能指标上总体较原始的 j b o s s h 艮务器有所提高。 关键词:w e b 应用服务器资源调度线程池启发式因素语义缓存 i i i r e s e a r c ho nk e yt e c h n o l o g i e so fd y n a m i c r e s o u r c es c h e d u l i n gi n 僵ba p p l i c a t i o ns e r v e r a b s t r a c t w i t ht h ee n v i r o n m e n to fe n t e r p r i s ea p p l i c a t i o n sg r a d u a l l yt r a n s f e r r i n gt o t h ed i s t r i b u t e dc o m p u t i n ge n v i r o n m e n to ni n t e m e t ,e n t e r p r i s ew e ba p p l i c a t i o n s a r eo fc h a r a c t e r i s t i c ss u c ha sc o m p l e x i t ya n dd y n a i i l i c ,w h i c hp u t sf o r w a r d h i g h e rr e q u i r e m e n t st op e r f o r m a n c eo p t i m i z a t i o no fw e ba p p l i c a t i o ns e r v e ra t m i d d l el a y e r r e s o u r c eu t i l i z a t i o na n ds c h e d u l i n ga r et h ek e yi s s u e so fa f f e c t i n g s e r v e rp e r f o r m a n c e t h et h e s i sf o c u s e so nt h er e s o u r c es c h e d u l i n gi nw e b a p p l i c a t i o ns e r v e r , i n c l u d i n gt h ed y n a m i cm a n a g e m e n to ft h r e a dp o o la n dt h e r e p l a c e m e n tp o l i c yo fs e m a n t i cc a c h e t h es o l u t i o n sa b o u tp r o m o t i n gt h ea b l i l i t y o ft h r e a dp o o ls e r v i n gc l i e n tr e q u e s t sb ym a k i n gu s eo fh e u r i s t i cf a c t o r sa n d p r o m o t i n gd a t au t i l i z a t i o nb yu s i n gs e m a n t i cc a c h ea r ep r e s e n t e d s o a st o a c h i e v et h eo b je c t i v eo f i m p r o v i n gw e ba p p l i c a t i o n s e r v e rp e r f o r m a n c e f i r s t l y , c o n s i d e r i n gh i g hl o a d e da n dh i g hc o n c u r r e n c yo fw e ba p p l i c a t i o n s a n dt h ep r o b l e mo fa d j u s t i n gt h r e a dp o o ls i z ed y n a m i c a l l ya tr u n t i m e ,ad y n a m i c t h r e a dp o o lm o d e lc a l l e dh d t p o si sd e s i g n e d i tu s e sm m 1 k o o f c f s q u e u i n gs y s t e mt or e d u c ew a i t i n g t i m eo f r e q u e s t s ,t h e nt r i g g e r st h ec r e a t i o na n d b l o c k i n go ft h r e a d su s i n gh e u r i s t i cf a c t o r si n c l u d i n gr e s p o n s ec o e f f i c i e n ta n d b l o c kt h r e a di n d i c a t o rt oi m p l e m e n td y n a m i ca d j u s t m e n to ft h r e a dp o o ls i z e t h e i v e x p e r i m e n t ss h o wt h a ts e r v e rc a na d j u s tt h r e a dp o o ls i z ed y n a m i c a l l yu s i n g h d t p q s ,a n dt h er e s p o n s et i m ea n dt h et h r o u g h p u to fw e ba p p l i c a t i o ns e r v e r w i t ht h ed y n a m i ct h r e a dp o o lm o d e lc a nb ei m p r o v e d s e c o n d l y , t h ep e r f o r m a n c eo fw e ba p p l i c a t i o ns e r v e rm a yb er e s t r i c t e d b e c a u s eo fl a r g en u m b e r so fu s e r si n t e r a c t i n gw i t hd a t a b a s ef r e q u e n t l y c a c h e c a nr e d u c et h ec o s to ft h ei n t e r a c t i o nb e t w e e nt h er e q u e s t sa n dt h ed a t a b a s e ,a n d i m p r o v et h er e s p o n s et i m eo fs e r v e r c a c h er e p l a c e m e n tp o l i c yc o n s i d e r st h e a t t r i b u t e so fc a c h eo b j e c t ,w h i c hc a u s e st h eh i tr a t ei sl o w t h e r e f o r et h e s e m a n t i cc a c h ei si n t r o d u c e di nw e ba p p l i c a t i o ns e r v e r i tu s e ss e m a n t i c i n f o r m a t i o nt od e s c r i b et h er e l a t i o n s h i po fd a t a b a s eo b j e c t sa n du s e st h e s e m a n t i ci n f o r m a t i o nt om a t c hf o rq u e r y i n gc a c h e ;a n dt h e nt r a c k sa n d a n a l y s i z e s t h ef e a t u r e s i n c l u d i n g u s e rv i s i tt i m i n g ,i n t e r v i e wc o n t e n ta n d b u s i n e s sa s s o c i a t i o n b a s e do nt h er e f e r e n c er a t eo ft h ea b o v et h r e ef e a t u r e s , e f f i c i e n tc a c h er e p l a c e m e n tp o l i c yi sc o n s t r u c t e d t h ee x p e r i m e n t ss h o w st h a t c a c h eh i tr a t eh a v eb e e np r o m o t e d ,a n dt h er e s p o n s et i m ea n dt h et h r o u g h p u to f a p p l i c a t i o ns e r v e rc a na l s ob ei m p r o v e d f i n a l l y , t h ep r o t o t y p i c a lr e s e a r c ha n de x p e r i m e n t sa r ec a r r i e do nb a s e do n t h eo p e n s o u r c e dj b o s s 4 2 1s e r v e r , w h i c hi n v o l v e si nt h ed y n a m i ct h r e a dp o o l m o d e la n dt h er e p l a c e m e n tp o l i c yo fs e m a n t i cc a c h e at y p i c a lw e b a p p l i c a t i o n a st e s tc a s ei si m p l e m e n t e dt oh e l pt h ep e r f o r m a n c et e s t t h ee x p e r i m e n t ss h o w t h a tt h ep r o t o t y p es y s t e mi sb e t t e rt h a no r i g i n a lj b o s s v k e y w o r d 目录 摘要i i a b s t r a c t 第一章绪论l 1 1 研究背景1 1 2 研究意义及内容1 1 2 1 研究意义1 1 2 2 研究内容2 1 3 论文组织3 第二章w e b 应用服务器及其资源调度技术概述4 2 1w e b 应用服务器简介一4 2 2 资源调度技术概述5 2 3 线程池技术6 2 4 缓存技术8 2 5 本章小结1 0 第三章基于排队模型的启发式动态线程池管理机制1 1 3 1 引言11 3 2 相关工作1 2 3 3 基于排队系统的线程池模型1 3 3 3 1 线程池模型的组成1 3 3 3 2 排队模型1 4 3 4 线程池动态管理机制15 3 4 1 线程池动态调整策略15 3 4 2 线程动态调度算法1 7 3 5 实验及分析1 7 3 6 本章小结2 0 第四章用户访问特征驱动的语义缓存替换策略2 1 4 1 引言2 1 4 2 缓存相关研究2 1 4 3w e b 应用服务器的语义缓存设计2 3 4 3 1 语义缓存体系结构2 3 4 3 2 语义缓存模型2 4 v i t 第 第 参 致 攻 攻 广西大掌硕士学位论文w d b 应用服务器动态资源调度关键技术研究 1 1 研究背景 第一章绪论 随着计算机和w e b 技术的发展,企业应用环境逐渐向i n t e m e t 网络分布式计算环境转 移。i n t e m e t 环境与传统的计算机硬件平台不同之处在于它具有如下特征:节点高度自治 性、开放性、动态性,实体行为不可预测性,底层设备、操作系统、数据库的多重异构 性,使用方式灵活性,运行环境不安全性,网络连接多样性等【l 】。i n t e m e t 环境的特征促 使计算机软件开发、部署、运行和维护的环境由封闭、静态、可控转向开放、动态、难 控;也使得企业应用具有复杂性、动态性等特征,其开发、部署、运行和维护更加困难。 使用中间件【2 】开发这类企业应用是一种合理的技术路线。中间件【3 】位于应用与操作系统 之间,屏蔽底层数据库,操作系统以及网络的异构性,简化网络分布式应用的开发、管 理和维护。从2 0 世纪8 0 年代末开始,中间件取得了长足的进步,得到了工业界和学术界 的青睐,已成为网络分布式系统的主要支撑平台【4 】。随着i n t e m e t 的飞速发展,应用的需 求和规模不断扩大,传统中间件应用环境逐渐转向面向i n t e m e t 的w e b 计算环境,促进了 新型中间件w e b 应用服务器的发展,其可以为w e b 应用的创建、部署、运行、集成和管 理提供一个跨平台的运行环境。 当前企业级w e b 应用系统中,性能问题一直是关注的重点【5 】。w e b 系统负载与日俱 增,每天都有大量任务复杂的请求发送到服务器,大量并发的数据访问对w e b 应用服务 器和数据库服务的管理提出了更高的要求。合理提高负载的响应时间且不对w e b 应用服 务器造成过多压力,成为提升w e b 系统整体性能的关键。在实际应用中,基于w e b 应用 服务器的多层体系结构随处可见,比如在线购物系统,每天在线购物的用户数量很多, 用户数不断增加以及服务器的处理能力有限势必会影响w e b 应用服务器的性能;同时大 部分的用户操作都只是读取查询一些固定不变的信息,只有很小一部分是对系统进行写 入操作,如果w e b 应用服务器不停地处理大量相同的任务,必会降低其处理重要业务逻 辑的能力,从而降低w 曲应用服务器的处理能力。针对大量并发用户下w e b 应用服务器 的性能问题,论文从w e b 应用服务器的资源调度着手:一是利用动态线程池技术,优化 线性处理能力,提升负载并发访问的性能;二是利用中间层的数据缓存技术,提高数据 访问效率。 1 2 研究意义及内容 1 2 1 研究意义 针对新的i n t e m e t 环境下的企业w e b 应用动态性、用户复杂性等特点,通过研究中间 w b b 应用服务器动态资源调度关键技术研究 件( 以w e b 应用服务器为工作对象) 的资源调度如线程调度机制、缓存调度机制以提高 资源利用率,达到企业w e b 应用具有较快响应时间、较高吞吐量的目标。 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 应用服务器中,当用户访问w e b 应用系 统时,获取数据资源首先在w e b 应用服务器缓存中查找,大大提高了服务的时间。利用 语义信息描述缓存对象和进行匹配能够处理复杂的查询关系,根据用户的访问特征建立 一种高效的语义缓存替换策略,可以提高w e b 应用服务器中缓存的命中率,进而提升整 个w e b 应用服务器的性能,实现w e b 系统较快响应时间和较高吞吐量的目标。 综上所述,为了实现企业w e b 应用具有较快响应时间、较高吞吐量的目标,论文以 w e b 应用服务器资源调度为研究切入点,围绕动态性目标,重点研究w e b 应用服务器的 线程调度技术和缓存调度技术,在开放源代码的j b o s s 4 2 1 应用服务器上进行原型实验, 可为i n t e m e t 环境下的分布式w e b 应用系统的高效运行提供支持,为服务器的实现提供可 行的技术基础。因此本文的研究具有良好的理论意义和科研价值。 1 2 2 研究内容 本论文主要的研究内容是: ( 1 ) 对w e b 应用服务器的动态资源调度技术进行调研,整理相关技术资料。 ( 2 ) 研究现有的线程池模型、静态配置过程、动态调整机制。提出一种动态线程 池模型,根据一组运行时启发式指标实现线程池大小的动态调整,达到优化w e b 应用服 务器性能的目标。 ( 3 ) 分析现有的缓存体系结构,在中间层缓存引入语义缓存,在跟踪用户访问时 间、访问内容量、业务关联3 个特征基础上,提出一种缓存替换策略,达到提高缓存命 中率的目标。 ( 4 ) 分析开源w e b 应用服务器j b o s s 4 2 1 源码,在j b o s s 4 2 1 平台上进行二次开发, 完成原型系统。 ( 5 ) 通过一种典型w e b 应用,对原型系统进行性能测试,分析其性能表现。 其研究内容如图1 1 所示: 2 1 3 论文组织 w e b 应用服务器动态资源调度关键技术研究 j b o s s 4 2 1 平台; i i i i i i i i i i ii i ii i 图1 1 研究内容结构图 f i g 1 - 1t h ef r a m e w o r ko f r e s e a r c hc o n t e n t 全文的组织结构如下: 第一章介绍论文的研究背景、研究的意义和内容、概述论文主要的工作和成果。 第二章主要介绍了w e b 应用服务器中相关的资源调度技术的工作背景和国内外研 究现状,引出论文研究的重点线程池和缓存技术。 第三章研究了一种基于排队系统的启发式动态线程池管理机制,主要提出了一个线 程池模型,利用m m 1 k o o f c f s 排队系统进行请求的预处理,提出动态调整线程池大 小的策略,测试并验证其效果。 第四章研究了一种用户特征驱动的语义缓存替换策略,设计了语义缓存的体系结 构,定义了语义缓存的模型,分析用户访问时间,访问内容量,业务关联基础上,提出 缓存替换算法,给出了缓存命中率方面的比较和w e b 应用服务器的性能对比。 第五章介绍原型系统性能测试,开发了原型系统,给出一个典型w e b 应用:书店购 物系统,按照l o a d r u n n e r 8 1 的测试步骤进行性能测试和压力测试,给出了原型系统和 j b o s s 4 2 1 两种服务器的性能比较。 第六章对论文的工作成果作了总结,并对下一步工作进行展望。 3 w e b 应用服务器动态资源调度关键技术研究 第二章w e b 应用服务器及其资源调度技术概述 2 1w ,e b 应用服务器简介 在面向i n t e m e t 的w e b 计算环境下,w e b 应用服务器为创建、部署、运行、集成、维 护和管理事务性应用服务提供包含一系列运行时服务( 如消息、安全、事物、应用集成 等) 的运行环境和平刨6 1 ,同时要满足w e b 计算所需的特定需求,所以要具有w e b 服务器 的功能,故称为w e b 应用服务器。用户只须关心中间层应用服务的业务逻辑,而中间层 应用服务的路由选择、名字解析、事务控制、负载平衡、状态迁移、失效恢复、升级扩 展等功i i i i 都由w e b 应用服务器提供 7 】。w e b 应用服务器是在w e b 计算环境下产生的新 一代中间件【引。图2 1 为典型的多层结构中的w e b 应用服务器。 p r e s e n t a l j o nb u s i n e s sl o g i c d a t a t i e rt i e r l t i e r 1-。- m o b i l ed e v i c e ii d a t a b a s e s 图2 - i 多层结构中的w e b 应用服务器 f i g 2 - 1w e ba p p l i c a t i o ns e r v e ri nm u l t i l a y e rs t r u c t u r e w e b 应用服务器可以为企业应用提供如下好处和能力: 高质量和高性能特征。针对用户和系统的高需求,应用服务器必须具有高质量 和高性能特征。应用服务器提供大量底层支撑机制和专门服务,对提高企业应 用的性能有较大帮助,如响应时间和高吞吐量,提供可伸缩性、安全性和可靠 性等能力。 复用性和有效性。应用服务器把应用与底层支撑机制分开,企业应用的开发无 需考虑底层细节( 数据库和操作系统) ,从而实现跨平台开发;不同种类的应 用程序共享相同的业务逻辑,提高业务逻辑与服务组件的复用效率,使企业应 用能够快速开发部署。 管理性。应用监控和管理更加容易,系统维护和升级的成本大大降低。 4 w 6 b 应用服务器动态资- 源- i 1 度关键技术研究 集成能力。通过应用服务器,企业应用可以与其他资源快速集成。如e r p 系统、 遗留系统资源和其它数据资源等。 目前w e b 应用服务器发展迅猛,成为软件市场的热点。国内外众多计算机厂商都进 行了大量的研发工作,分别推出了各自的应用服务器,女i b e aw e b l o g i c 、i b m w e b s p h e r e 、s u ni p l a n e t 、o r a c l e 9 i a s 、s y b a s ee as e r v e r 等p 】。w e b 应用服务器覆盖了在 w e b 计算环境下计算机软件技术的诸多领域,如分布式计算、事务处理、分布式对象 和组件技术、应用集成和网络安全、数据管理等技术。w e b 应用服务器基本研究内容主 要包括:w e b 应用服务器可扩展框架研究、分布式事务处理、组件容器、可靠消息服务、 统一数据访问模型研究、安全认证研究、外部资源集成框架、部署配置管理、服务器系 统管理、q o s 管理等等。 j b o s s 是一个基于j a v a e e 的开放源代码的应用服务器。因为j b o s s 代码遵循l g p l 许 可,可以在任何商业应用中免费使用它。j b o s s 是一个管理e j b 的容器和服务器,支持e j b 1 1 、e j b2 0 和e j b 3 0 的规范,同时j b o s s 开发团队还计划开发新的微内核层,即独立 于j m x 。j b o s s 应用服务器具有许多优秀的特点:它将具有革命性的j m x 微内核服 务作为其总线结构;本身是面向服务的架构( s e r v i c e o r i e n t e da r c h i t e c t u r e ,s o a ) ; 它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力,这些特点 使得j b o s s 应用服务器具有良好的性能和质量。因此无论是学习还是应用,j b o s s 为我 们提供了一个非常优秀的平台。 2 2 资源调度技术概述 国内外许多应用服务器厂商一直比较关注服务器性能问题。例j t l i b m 、o r a c l e 、金 蝶等中间件服务提供商,为了提高他们应用服务器的响应速度和稳定性,主要是从e j b 容器、w e b 容器、j d b c 、j m s 、j v m 等子系统入手,优化各子系统的性能,具体的方式 主要是优化各子系统相关的资源调度技术。w e b 应用服务器中主要的资源调度技术有负 载均衡技术、连接池、线程池、高速缓存等。 w e b 应用服务器中包含很多不同的业务组件,每个组件都可以为请求服务,如果所 有的请求都通过一个组件完成而其它组件闲置,必然导致应用服务器性能下降,这就涉 及i ! i i i 务器的负载均衡问题。负载均衡【1o 】可以分为自适应性和非自适应性两种。自适应 负载均衡对系统负载的变化具有自适应的调节能力,可以动态决策负载的分配,而非自 适应性负载均衡只能提供静态的负载分配【1 1 1 。自适应负载均衡主要包括负载监控、负载 分析和负载分配。负载监控定期地收集集群内各节点的负载信息;负载分析对各节点的 负载状态进行分析;而负载分配依据负载分析结果将负载按照权值比例重新分配,并隔 离无响应的节点。常用的负载均衡技术【1 2 】包括代理服务器技术、轮转d n s 法、站点镜像 技术、地址转换网关技术、协议内部支持等。负载均衡常见算法有:加权循环调度算法 ( w e i g h t e dr o u n d r o b i ns c h e d u l i n g ) 、循环调度算法( r o u n d r o b i ns c h e d u l i n g ) 、目标地 5 广西大学硕士学位论文w b b 应用服务器动态资源调度关键技术研究 址散列调度算法( d e s t i n a t i o nh a s h i n gs c h e d u l i n g ) 、源地址散列调度算法( s o u r c eh a s h i n g s c h e d u l i n g ) 、最小连接调度算法( l e a s t c o n n e c t i o ns c h e d u l i n g ) 膪1 1 3 j 。 连接池技术【1 4 】是提高数据库访问效率的一种有效手段。在系统启动时就创建一定数 量的数据库连接,便于用户直接请求连接数据库,从而降低了每一个数据访问数据库的 连接开销,减轻了应用服务器和数据库服务器的负担。目前主流的w e b 应用服务器大多 使用了数据库连接池技术,虫n w e b l o g i c 、j b o s s 等【l 引。近些年来,对连接池技术的研究 侧重于连接池结构的设计与实现。传统的数据库连接池技术在功能上各不相同,虽然可 以较好的实现池化连接的思想,但并不符合标准的j d b c 规范,且大多是采用各自的优 化策略和设计方案,选择上与应用服务器的耦合度较大。 线程池是一个或多个线程的集合,可循环执行多个应用逻辑。它使用已有的线程循 环执行多个任务,减少创建和切换线程的额外开销,提高系统的处理能力,为线程生命 周期开销问题和资源不足问题提供解决方案,是w e b 应用服务器提升性能常用的一种技 术。本章第三小节将重点论述线程池技术。 缓存技术是提高w e b 应用服务器吞吐量、加快请求响应速度的一种有效办法。中 间层缓存数据对象可以有效降低w e b 应用服务器查询数据库的开销,减少后台数据库 的竞争,加快请求响应速度。本章第四小节将阐述缓存相关技术。 2 3 线程池技术 传统线程池模型 传统的线程池模型有:工作组模型 1 6 1 ,主从模型1 刀和管道模型【1 8 】。工作组( w o r k c r e w ) 模型最显著的特点是线程池中的线程功能地位都相同、互相协作为用户请求提供 服务;主从( m a s t e r s l a v e s ) 模型又称为b o s s w o r k e r s 模型,最大的特点是主从式结构 的设计,线程池中的一个或多个线程处于管理者的地位( m a s t e r ) ,而其它线程处于被 管理的地位( s l a v e s ) ,m a s t e r 线程接受用户的请求并选择s l a v e r 线程执行用户请求;管 道( p i p e l i n e ) 模型的特点是线程池中的所有线程之间相互关联衔接构成一个“管道”, 下一步的输入要依赖上一步的结果输出,该模型常用于用户请求经过多步处理的应用 中。这三种模型相比较而言,m a s t e r s l a v e s 具有可移植、可管理、易于开发部署的特性, 较其他两种模型优势尤为明显,因此在研究和工业领域受到了极大的关注和使用。论文 第三章中建立的动态线程池模型也是基于主从结构进行设计。 线程池的资源调度问题 虽然线程池是一种构建多线程应用的强大机制,但线程池的使用也有诸多风险。基 于线程池构建的应用程序极易发生并发风险,如同步错误和死锁,还容易产生线程池特 有的少数其它风险,如资源不足和线程泄漏【l 引。相对于其它替代调度机制而言,线程池 通常执行得很好,但只有在线程池大小调整到合适时才能运行较好。线程消耗包括内存 和其它系统资源在内的大量资源,除了线程对象所需的内存之外,每个线程都需要两个 很大的执行调用堆栈,与此同时虽然线程相互切换的调度开销很小,但如果有很多线程, 6 w e b 应用服务器动态资源调度关键技术研究 线程切换带来的开销也可能严重地影响程序的性能,因此如果线程池太大,线程消耗的 资源可能严重地影响系统性能。如何在有限的资源和线程池线程数量二者之间达到一个 平衡,对于提高系统的线程池的性能至关重要。论文的第三章也致力于解决这个问题。 中间件中的线程池研究 当前,很多服务器厂商在他们的w e b 应用服务器或者w e b 容器中都使用了线程池机 制,比j i b e a 公司的w 曲l o 西c 服务器【2 0 1 、i b m 的w 曲s p h e r e 服务器【2 1 】、a p a c h e 组织的开 源项e l t o m c a t 2 2 】都使用了线程池机制,下面简要介绍一下w e b l o g i c 的线程池大小调整和 w e b s p h e r e 的线程池运行机理和线程池的调整。 在w e b l o g i cs e r v e r 9 0 以前的版本中,请求处理分布在多个队列中执行。不同种类 的任务请求根据优先级顺序在不同的队列中执行,以此来避免死锁的情况。除了默认的 执行队列外,还有预先设定的队列用于服务器内部管理,用户必须通过修改默认队列中 线程数量来控制线程的使用,或者配置自定义的执行队列来确保特定应用有权限使用确 定数量的线程。w e b l o g i cs e r v e r9 0 以后版本用一个单独的线程池来执行各种任务,默 认的队列监视吞吐量,根据吞吐量的历史记录来决定是否调整线程数,线程池自动改变 其大小以达到最大吞吐量。例如,如果历史吞吐量统计显示大量线程增加了吞吐量, w e b l o g i cs e r v e r 就增加线程数;类似的,如果统计显示较少的线程不减少吞吐量, w e b l o g i cs e r v e r 就减少线程数。这个新策略使得管理程序很容易分配处理器资源,避免 在跟踪、配置和调整自定义执行队列过程中带来复杂性。 w e b s p h e r ea p p l i c a t i o ns e r v e d 2 1 提供了高伸缩性和高性能的线程池实现。异步b e a n 和c o m m o n j 的w o r k m a n a g e r 对所有池线程都使用此线程池。由于w o r k m a n a g e r 实例可用 于全局命名空间以及可以在多个应用程序之间共享,因此需要切换w e b 应用程序上下 文。为完成此任务,w o r k m a n a g e r 在提交请求时会获取线程上w e b 应用程序的上下文, 产生的对象为w o r k w i t h e x e c u t i o n c o n t e x t ( w w e c ) 对象。w e b s p h e r e a p p l i c a t i o ns e r v e r v 4 o 和更新的版本中,线程池定义了反映池大小的限制的最大值和最小值。一般来说, 大容量的应用程序有较大的线程池大小,但是有些因素( 例如应用程序瓶颈、 s y n c h r o n i z e d 关键字的使用) 将阻碍大线程池的高效利用。如果线程池大小没有足够的 可用线程用于在合理的时间内完成客户请求,那么线程池的优化就需要对服务器进行调 试,以达到堆大小和可用线程数之间一个好的平衡。 综上所述,线程池技术为线程的创建、切换等生命周期开销问题和资源不足问题提 供了有效的解决方案,是提高w e b 应用服务器性能的一个有效技术手段。但是也有许多 应用风险有待解决,其中资源不足和线程池中的线程数量之间的矛盾更为突出。如何确 定线程池中的线程数量以满足用户请求的处理,使w e b 应用服务器的性能最优化成为研 究的重点。例如,在w e b l o g i cs e r v e r 9 0 以后的版本中,根据历史吞吐量的大小可自行 调整线程池中的线程数量,没有考虑其他指标,这种自优化不够精确;而w e b s p h e r e 调 整线程池的大小需要在配置文件中更改,在运行过程中达不到动态调整的效果。 7 w b b 应用服务器动态资源调度关键技术研究 2 4 缓存技术 在众多w e b 应用服务器资源调度技术中,缓存技术得到了业界的广泛应用。中间层 的缓存不仅能减少用户请求对后端数据库资源的不断重复访问,而且能同时给多个用户 提供服务。目前主要的缓存技术包括页缓存、元组缓存、表缓存、语义缓存等。 ( 1 ) 页缓存 页缓存【2 3 】的对象是物理数据页。用户的查询请求本质上是对相关页的访问,在客户 端缓存无法获取相关页时,将用户的查询请求发送至服务器端查询。客户端的页缓存机 制依靠页标识维护管理缓存,这一点与传统的基于页的数据库缓存管理器相类似。页缓 存采用静态的空间和时间属性,所以它有内在的劣势。页缓存对数据库的物理结构很敏 感,如果数据空间聚集度较差,将会消耗大量的网络通信,所以在网络连接不稳定的环 境中采用页缓存的方法是不合适的。 ( 2 ) 元组缓存 元组缓存【2 4 】中缓存对象是元组而不是页,与页缓存相比较只是缓存粒度不同。以元 组为缓存粒度给缓存内容的管理带来了极大的方便,但是元组缓存有两个缺点:一是本 地查询元组失败时会导致客户与服务器之间频繁交互影响系统的性能;二是由于处理大 量较小信息引起的性能问题。为了解决在性能方面的影响,元组缓存将元组请求批量发 送给服务器,同时服务器将元组数据打包成块传回客户端。由于元组缓存是基于标识的, 对关联访问支持有限,因此元组缓存在应用上受到了一定的限制,主要用于面向对象数 据库。 ( 3 ) 表缓存 表缓存本质上是对表查询结果的缓存,中间层缓存后端数据库的部分关系表,支持 对缓存的查询。i b m 的d b c a c h e 2 3 搿】是一个表缓存的实现,他可以分解查询任务,在中 间层缓存和后端数据库中分别查询,从而提高w e b 应用的性能。它使用一系列工具管理 缓存,包括选择需要缓存的表、更新缓存内容等。在处理请求时,d b c a c h e 分解出对应 表已更改的请求,将这些请求发送给数据库,避免了在数据更新方面的冲突。在保持缓 存数据一致性方面,为了实现缓存与后端数据库的同步,d b c a c h e 使用了标准的复制方 法,更新进程根据相关策略更新缓存。 ( 4 ) 语义缓存 语义缓存是一种基于用户查询结果集以及相关语义描述的缓存机制。语义缓存同时 保存查询结果和语义描述,客户端利用语义信息在本地缓存中进行匹配,在本地缓存中 不能获取的部分将被裁剪出来,发送给服务器,减少了网路传输量。因此,相对页缓存 和元组缓存,它具备明显优势:支持并发处理、节省缓存容量、节约网络开销和通信费 用、支持网络断接。目前,对语义缓存技术的研究主要有四个方面:语义缓存模型、语 义缓存查询处理机制、语义缓存替换策略以及语义缓存一致性维护 2 5 j 。 8 w 6 b 应用服务器动态资源调度关键技术研究 缓存替换算法 缓存替换算法已有大量的研究成果,主要有l r u 2 6 1 、l f u 2 7 1 、l u v 2 8 】等经典算法, 这里将不在一一论述,下面就一些典型缓存替换算法在考虑因子、替换依据、优点,缺 点等方面进行比较。 表2 i 典型缓存替换算法 t a b l e2 - 1t y p i c a lc a c h er e p l a c e m e n ta l g o r i t h m s 替换算法考虑因

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论