




已阅读5页,还剩52页未读, 继续免费阅读
(计算机科学与技术专业论文)流水web服务器体系结构技术研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 w c b 应用的日益推广是促使i n t e m e t 飞速发展的关键动力之一。由于基于w c b 的信息 服务具有的信息规模大和访问频率高等特点,提高w e b 服务器的服务能力便成为决定信息 服务质量的关键因素。目前提高w 曲服务器能力的方式主要有三种:增加w 曲服务器的 硬件资源,如c p u 处理能力、内存大小和硬盘容量;将若干w e b 服务器搭建成c l u s t e r , 集群向外提供w 曲服务;采用具有高可扩展性的w 曲服务器软件,通过采用新颖的体系 结构和高效的技术实现策略,提高服务器的单机处理能力。第三种技术是提高w e b 服务器 能力的基础和关键,本文针对如何通过设计和实现新型体系结构和信息处理技术来提高 w e b 服务器的可扩展性和高性能进行深入研究。 本文首先深入分析了当前主流服务器的体系结构,对其进行了分类。并在实现技术和 性能上做了详细的对比,从而总结出现阶段设计高性能w 曲服务器所要遵守的原则。 基于所提出的原则,本文提出了一种基于软流水体系结构的新型内核级多线程w 曲服 务器体系结构一一k e t a ( k e m e ln e t w o r kg e m ) 。i ( e t a 体系结构通过将完整的w e b 请求 处理流程划分为若干流水栈,每个线程只负责完成w 曲请求处理的特定环节,互不干涉, 降低了并行粒度,使得各w 曲请求实现了任务内并行,各任务在执行过程中重叠,提高了 服务的并发度和性能。 本文结合k e l a 体系结构的具体实现环境研究了若干网络优化技术。通过采用s o c k e t 复用技术使得k e l a 在将自身不能处理的动态请求转发到用户级服务器之后。仍可掌握该 请求所在连接的控制权。这样,便保证之后在该连接上的静态请求仍然由k e t a 来处理。 从而将以前整个连接的转发改进为单个请求转发,降低了转发的粒度,增加了1 1 a 的利 用率,提高了处理效率。 最后,基于上述研究成果,本文在k y l i n 操作系统上实现了内核级流水体系结构的 k e l a 服务器。并充分利用k e l a 服务器在内核实现的优势,提出了利用m b u f 复用技术 进行数据发送的策略,在发送过程中直接对m b u f 链及s o c k c t 发送缓冲区进行操作,有效 地提高了k e t a 服务器的处理效率。 通过评测表明,k e t a 的流水线体系结构更适合在s m p 平台下,较大负载的服务环境。 并且k e l a 服务器的性能优越,较当前其他几种内核级w 曲服务器具有明显的优势。 关键词:w e b 服务器,k e t a ,s o c k e t 复用,m b u f 复用 国防科学技术人学研究生院学位论文 a b s t r a c t ,c ba p p l i c a t i o ni so n eo fm ek e yt e c l l l l o l o 百e st ol l r g ei n t e m e td e v e l o p i n ga tv e r yf 砧ts p e e d b e c a u s ei n f o m l a t i o ns e r v i c eb a s e dw 曲h a st h ec h a r a c t e r i s t i co fh i g ha m o 诖n ta n d h i g ha c c e s s 主n g f 沱q u e n cy ,i m p r o v i n gt 1 1 ep e r f o m l a n c eo fw e bs e “e ri sb e c o m i n gt l l ek e yf a c t o ro fd e c i d i n gt h e i n f o m a t i o ns e r v i c eq u a n t i t y a tp r e s e n t ,t l l e r e 趾em o s t l ym r e em o d e st oe 矗e c t i v e l yi m p r o v i n g m ew e bs e r v e r sp e r f o m l 孤c e :i m p r o v i n gh a r d w a r er e s o u r c eq ft h ew e bs e r v e r ,s u c ha st h e d i s p o s i n gp e 由肌a i l c eo fc p u ,恤s i z eo fm e m o r y 觚dt h ec 印a c 时。仆a r d d i s l 【,o rc o n s 仃u c t s e v e r a lw e bs e r v e r st ot l l ec l u s t e rt h a tb r i n g sf o n v a r d 、v e bs e r v i c e ,0 rr e a l i z i n gag o o d p e r f o m l a l l c eo f 血ew e b s e r v e rs o n w a r e ,u s i n gt h en e ws y s t e ma r c h i t e c c u r ea i l dg o o de m c i e n c y p o i i c yo ft e c h n o l o g yt 0i m p r o v et h ep e d b m l a l l c eo fs i n g i ew e b s e v e r t h et l l i r d 、v a yi s 血eb a s e a n dk e yt oi m p r o v ew 曲s e n ,e rp e d b n n a l l c e ,s ot 1 1 i sp 印e rd e s c 舶e sm o s t l yh o wt od e s i 印a i l d r e a l i z ean e wa r c h i t e c t l l r ea 芏l di n f b m a t i o nd i s p o s i n gt e c h n o l o g yt oe n h a n c et 1 1 ew 曲s e r v e r s e x p a n s i b i l i 妙a n dp e r f 0 h n a i l c e f i r s t l y ,m i sp a p e rr e s e a r c h e st h ep o p u l a rw e bs e e 娼a r c h i t e c n j r ei nd e t a i l ,c l a s s i f i e st 1 1 e m a n dc o n t r a s t st mi nr e a l i z i n gt e c h n o l o g ya t l dp e r f b n l 均n c e t h i sp a p e ra l s 0c o n c l u d e st h em l e s f o rd e s i g n i n gh i g hp e r f o r m a n c ew e bs e r rc u n 七i l t l y s e c o n d l y ,t h i sp 印e rd e s i g n sa n dr e a l i z e san e wm u 恤a d sw 曲s e “e ri nk e n l e l k e t a ( k e m e ln e t w o r kg e a r ) ,b a s i n gc h es o f lp i p e l i n ea r c h i t e c t u r ei nk y l i n k e t as e p a r a t et h ef u i l m q u e s tt os o m ep a r t i t i o n si np i p e l i n e ,e v e r ym r e a dd e a i sw i t h 印p o i n t e dp a r t i t i o na n da r e s e l f - g o v e m e de a c ho t l l e li tr e d u c e st h ep a r a l i e lg r a l l u l “吼m a d et h ee a c hp 绷i t i o no fr e q u e s t s d i s p o s e dp a r a l l e la n de v e r yd i s p o s i n gp r o c e s so v e r l 印i ti m p r o v e st h ew 曲s e r v e r sp e r f b f n l a i l c e g r e a t l y a g a i n ,t l l i sp a p 钟a l s or e a c h e sn e t w o r ko p t i m i z et e c m o l o g yk e t a c a i ls t i l lc o n t m lm i s s o c k e tu s i n gs o c k e tr e u s et e c h n o i o g yw h e nt h eo u t s i d ew e bs e r v e ri sd e a l i n g 谢t 1 1t h es o c k e “h a t k e t ar e d i r c c t e dt oi t n i sw a yr e p l a c b sc o m p l e t ec o n n e c t i o nr e d i r e c t i o n 、i t ho n er e q u e s t r e d i r e c t i o n nr e d u c e st h e 伊a n u l a r i t yo fr e d i r e c t i o n ,i n c r e a s e st h eu t i l i z i n go fk e l aa i l d i m p r o v e st h cp e r f b m a l l c eo f k e t ae 彘c t i v e l y f i n a l l y ,b a s i n go nr e s u l ta b o v e ,w er e a j i z et h ek e l - at h a tr u n si nk e m e li nk y l i nw i t l l m u l t i t l l r e a d ss o f tp i p e l i n ea f c h i t e c t w e w ea l s ot a k e 刚a d v a n t a g eo fc h a r a c t e r i s t i ct h a tk e t a m n si nk e m e l ,p r e s e n tt h ep o 王i c yw i t hm b u fr e u s et e c l l n o l o g yi nd a t as e n d i n gp r o c e s s i tm a k e s 1 1 垦堕型茎垫奎奎耋坚蜜尘堕耋堡篁壅 一 k e t ah a n d l er e q u e s td i r e c t l yi nm b u fc h a j na l l ds o c k c ts e n db u 腩rd u r i n gt h ed a t as e n d i n g p r o c e s s ,i m p r o v em cp e 凼m a n c eo f k e t a e 虢c t i v e l y 1 k o u 曲e v a l u a t i n g ,t h ep i p e l i n ea r c h i t e c t u r ei sm o r ea d a p t i v et os m pa i l d 伊e a t1 0 a dt l l a l l o m e ra r c h i t e c t u r e s b e s i d e s ,k e t ah a ss t e a d yp e r f o m l a n c e ,h a sb e 仕e ra d v a n t a g et | l a i lo t h e rw e b s e r v e r si nk e m e lc u r r c n t l y k e yw o r d s :w e bs e n r e r l ( e t a ,s o c k e t 托u s e ,m u b f 糙u s e 国防科学技术火学研究生院学位论文 图目录 图2 一l 单进程事件驱动型结构示意图3 图2 2 多进程型结构示意图4 图2 3 多线程型结构示意图4 图2 4 非均匀多进程事件驱动型示意图5 图3 1k e t a 体系结构图1 2 图3 2 线程状态变换图1 4 图4 一l 插口层将一般请求转换为指定的协议操作一1 7 图4 2k e t a 中动态请求转发过程18 图4 3s o c k e t 复用技术示意图1 9 图5 1 根据不同m f l a g s 值的四种不同类型的m b u f 。2 3 图5 2 带有i p 地址和端口号的m b u f 2 4 图5 3 包含了以太网数据的分组头部帕u f 2 4 图5 4 在一个队列中的两个分组2 5 图5 5m b u f 链示意图2 6 图5 6m b u f 复用示意图2 7 图6 1k e t a 存储区结构图3 5 图6 2 页面管理结构3 6 图6 3h a s h 示意图3 7 图6 4 请求分级示意图4 0 图6 5 内容降级示意图4 2 图6 6 三种平台的b f 性能测试结果4 4 国防科学技术大学研究生院学位论文 表 目录 表2 1w e bs e r v e r 结构比较 表2 2 并发链接数3 0 0 的测试结果( 三个客户端) 表2 3 并发链接数6 0 0 的测试结果( 三个客户端) 表2 4 并发链接数1 0 0 0 的测试结果( 五个客户端) 表3 1 主流典型w e b 服务器的技术实现策略区别 表4 一l 并发链接数3 0 0 的测试结果( 三个客户端) 表4 2 并发链接数6 0 0 的测试结果( 三个客户端) 表5 一l 并发链接数3 0 0 的测试结果( 三个客户端) 表5 2 并发链接数6 0 0 的测试结果( 三个客户端) 表6 一l 内容自适应的分级情况 表6 2 并发链接数3 0 0 的测试结果( 两个客户端) 表6 3 并发链接数6 0 0 的测试结果( 三个客户端) 表6 4 并发链接数1 0 0 0 的测试结果( 五个客户端) “_m加加勰勰甜铝钙 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:速坐婴b 题签墨签盘结捡拉垄珏壅生塞塑 学位论文作者签名:垒盈日期:捌f 年,矗月g 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阕和借阕;可以将学位论文的全部或部分内容编入有关数据库进行检索 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:速坐! 堕丛釜墨签歪整拉挂苤丑窒复塞理 学位论文作者签名 作者指导教师签名 魄礁 日期:o 御r 年肛月g 日 日期:2 - i 年,2 月譬日 皿 国防科学技术大学研究生院学位论文 第一章绪论 1 1 立题背景及意义 1 1 1w e bs e r v e r 性能的发展需要 近十年来,矾e m c t 上w 曲应用一直处于爆炸式增长阶段。目前以w 曲形式发布的信 息海量,种类繁多,诸如政府公共信息、图书馆、远程教育和搜索引擎等大型信息库比比 皆是。因此,用户以w 曲方式访问信息的频率高,访问数据量大,据统计w 曲流量在i n t e m e t 总流量中的比例已经超过了6 0 【”。这给i n t e m e t 上的各种w 曲服务器提出了前所未有的 挑战。比如a o l 的w e b 服务器每天服务接受超过一百亿次点击【2 】。 h r r p 请求具有猝发特点,经常以猝发、自相似流的形式访问w 曲服务器【3 】高峰时 的m 1 p 请求率超过平均值的8 1 0 倍f 4 l ,故而大型w 曲站点经常出现服务器超载的现象。 已有研究表弱,一般w e b 用户期望的理想w c b 响应时间为1 秒,难以忍受超过8 ,1 0 秒的 等待时间【5 】,电子商务网站的理想响应时间应在7 秒之内,否则将会损失超过3 0 的潜在 客户【6 】。正由于w 曲应用所具有的规模和访问特性,必然要求w 曲服务器具有良好的可扩 展性以满足客户所需的服务质量。 目前提高w e b 服务器能力的方式主要有三种:增加w e b 服务器的硬件资源,如c p u 处理能力、内存大小和硬盘容量;将若干w 曲服务器搭建成c l u s t e r ,集群向外提供w c b 服务:采用具有商可扩展性的w 如服务器软件,通过采用新颖的体系结构和商效的技术实 现策略,提高服务器的单机处理能力。其中如何设计和实现一个高性能的w 曲服务器体 系结构是提高性能的重要技术途径之。 1 1 2 课题研究方向 基于k y l i n l 2 5 l 服务器操作系统面向高性能的w 曲服务及数据库服务需求,在分析当前 主流服务器的体系结构区别移性锃差异的基础上,研究高性能的w 曲服务器体系结构技术 及相关的优化技术。使得k y l i n 操作系统可有效提供w 如服务和数据库服务,满足用户对 国产服务器的高性能信息服务需求。 本课题主要的研究工作如下 1 2 课题研究内容 国防科学技术大学研究生院学位论文 分析了当前w 曲服务器的性能发展需求,了解了k y l i n 服务器操作系统对w 曲请 求处理能力的迫切需要。 研究了当前存在的各种w 曲服务器的体系结构,并对各种体系结构的典型服务器 代表进行了性能对比。在分析了各个服务器体系结构优缺点的基础上提出了高性 能w e b 服务器体系结构的设计原则。 基于所总结的原则,提出了一种基于软流水体系结构的新型内核级多线程w 曲服 务器体系结构一一k e t a 。 深入理解了k y l i n 下s o c k e t 接收和发送过程,提出了s o c k e t 复用技术来改进k y l i n 服务器下内核级w 曲服务器的动态请求转发机制。使得k y l i n 下的k e t a 服务器 能够充分发挥作为内核级服务器的优势,提高了处理请求的效率。 深入分析了k y l i n 操作系统的数据发送过程,提出了m b u f 复用技术来改进k y l i n 服务器的发送机制。使得k y l i n 下的k e t a 服务器发送性能得到优化,提高了处 理请求的效率。 在k y l i n 操作系统的内核层实现了采用k e l a 体系结构的k e l a 服务器。 1 3 论文结构 论文共分六章,组织如下: 第一章为绪论部分,主要介绍了课题的应用背景和本文的主要研究内容。 第二章综述了目前主流的几种w 曲s e r v e r 体系结构,并对其进行了性能对比,分析 了其各自的优缺点。提出了一些w e b 服务器体系结构的设计原则,总结了流水体 系结构的优点,这些对于w 曲s e r v e r 体系结构的设计以及性能的提高具有一定的 指导意义。 第三章深入分析了基于软流水结构的新型内核级多线程w 曲服务器体系结构一 1 1 a 的结构特点及其相关技术。 在第四章提出s o c k e t 复用技术改进了k y l i n 下内核级w 曲服务器的动态请求转发 机制。使得k e t a 服务器能更加充分发挥作为内核级w 曲服务器处理静态请求的 优势。 第五章提出了m b u f 复用技术改进了k y l i n 服务器操作系统的数据发送策略,提高 了k y l i n 下k e t a 服务器的处理效率。 第六章描述在k y l i n 操作系统上实现了采用k e l a 体系结构的k e t a 服务器。 第七章总结已经完成的工作,并指出进一步的研究方向。 国防科学技术大学研究生院学位论文 第二章w e bs e r v e r 体系结构研究 提高w 曲s e r v e r 的性能,即使w 曲s e e r 同时处理尽可能多的h 却服务请求。h t l p 服务请求的处理过程通常包括以下几个过程:建立连接并接收请求、分析请求、请求处理、 响应数据发送。不同结构的w 曲s e n r e r 在处理过程的顺序及方法上各有差异,对处理的并 行性及效率也有很大的影响,因此w 曲s e n r e r 的结构对服务器性能的影响至关重要。 2 1 目前主流的w e bs e r 、,e r 体系结构 目前的w 拍s e r v e r 可根据其运行环境分为用户级和内核级两类 2 6 】;根据体系结构,用 户级w e bs e r v e r 可以分为单进程事件驱动型( s i n g l ep o c e s se v e m d n v e n ,s p e d ) 、多进程 型( m u l 虹- p r o c e s s ,m p ) 、多线程型( m u l d t l l r c a d ,m t ) 、非对称多进程事件驱动型y m m e 仃i c m u i t i - p r o c e s se v e m d r i v e n ,a m p e d ) 等,内核级w 曲s e r v e r 则可以分为内核单线程事件驱动 型( s i n 9 1 et l l r c a de v e m - d r i v e nk e r n e l 一m o d e ,s t e d k m ) 和内核非均匀多线程事件驱动型 ( a s m m “cm u l t i - 缸e a de v e n t - 越v e nk e m e l m o d e l ,a m t e d k m ) 等。 2 1 1 用户级w e hs e n r e r 用户级的w 曲s e r v e r 是目前的主流服务器类型。a p a c h e ,z e u s 等运用广泛的服务器均 属于用户级服务器。 2 1 1 1 单进程事件驱动型( s p e d ) 该结构的服务器由单个进程来处理多个连接的监听,接收及处理等全部工作。服务器 使用非阻塞的系统调用执行异步i ,o 操作。例如f r e e b s d 中通常调用s e l e c t 函数来检测i o 操作是否完成。过程如下图所示: 厂 一- m 1 一 图2 1 单进程事件驱动型结构示意图 采用这种体系结构的服务器有m i c r o ,s e f v e r ( s e r v e r ) 州。z e u s f l 0 i ,i 【s 1 等。由于单进程事 件驱动型的服务器始终使用一个进程来处理多个连接请求,因此避免了进程间通讯及进程 上下文切换而带来的开销。但由于大部分操作系统对s e l e c t 调用和文件描述符的分配具有 国防科学技术大学研究生院学位论文 较弱的可扩展性7 1 ,因而这种类型的服务器对大量的同时连接管理时性能低下。操作系统 对异步i o 支持不足以及单个进程会发生缺页中断等不可避免的阻塞,将大大影响这种服 务器的性能【8 】。 2 1 1 2 多进程型( 肝) 该结构的服务器由多个进程共同处理所有的连接,每个进程顺序处理一个连接的所有 操作。每个进程均有自己独立的地址空间,因此处理不同的请求时不再需要同步操作。过 程如下图所示: 镕 进程l 图2 2 多进程型结构示意图 a p a c h e l l 2 】采用了固定数目的进程池来处理多个连接请求。多进程型服务器通过一个进 程来处理一个连接请求的所有操作,多个进程同时执行,增加了并行性。采用预先创建的 进程池可避免频繁的进程创建和销毁的开销,能够有效地提高服务器处理速度。但由于受 操作系统的限制,所创建的进程数目不能超过一个最大值。在高负载情况下,同时运行的 进程数达到最大,由此带来的进程间通讯以及上下文切换所带来的开销也达到最大。当到 来的请求数大于所能创建的进程的最大数,后面的请求只能等待或丢弃。 2 1 1 3 多线程型( m t ) 该结构的服务器每个线程顺序处理一个连接的所有操作,多个线程同时执行。k n o t 1 3 】 是典型的多线程型w 曲s e r v e r 之一。 多线程型体系结构需要操作系统支持核心多线程机制,当一个线程阻塞时,其他线程 依然能够保持在相同的地址空间上继续执行。如图所示: 图2 3 多线程型结构示意图 多线程体系结构又可以分为两种模式:( 1 ) 为每个连接对应一个线程,线程的数目是 固定的,即采用预先创建好的线程池以减少线程创建和销毁的开销,k n o t - c 采用了该模 4 国防科学技术大学研究生院学位论文 式;( 2 ) 为由一个线程监听并执行a c c e p t ,每建立一个连接就产生一个新的线程来处理该 连接的请求,k n o t - a 采用了该模式。两者并无本质区别,模式一在负载较轻时占用空间 多,模式二则空间占用较少,但增加了创建和销毁线程的开销。多线程结构与m p 类型的 主要区别在于多线程型的各个线程在相同的地址空间内执行,所有线程能够共享数据,减 少了通讯开销,但是各线程必需使用一定的方式同步对共享数据的访问。 2 1 1 4 非对称多进程事件驱动( 删p e d ) 该结构是由础c e 大学的v c ks 蹦,p e t e r 等人设计的f l a s h i 4 】服务器所采用的。f 1 a s h 最初由单个进程执行,当处理的连接请求的数据存在于c a c h e 内时,它的执行过程同s p e t 体系结构一致。当处理的请求需要磁盘读写时,它会交给预先创建好的辅助进程( h e l p e r ) 来专门处理该操作。过程如下图所示: 图2 4 非均匀多进程事件驱动型示意图 与s p e d 型体系结构相比,f 1 a s h 利用辅助进程来专门进行磁盘操作,因此当遇到i o 阻塞时,服务器进程将i o 操作交给辅助进程后即可继续处理后续的连接请求,减少了阻 塞等待时间,提高了效率。然而这种类型的服务器的主服务进程与辅助进程之间通过 i p c ( i n t e r - p r o c e s sc o m m u i l i c a t i o n ) 管道进行通讯,增加了通讯开销,并且又不可避免的要使 用s e l e c t 等可扩展性较弱的系统调用。 2 1 2 内核级w e bs e r v e r 为了提高服务器性能,减少系统调用的开销是一个重要的思想,因此人们开始考虑在 内核实现w 曲s e r v e r 以减少系统调用的开销。 2 1 2 1 内核单线程事件驱动型( s t e d 删) l i n u x 中的k h t t p d 【1 5 】和s c a l a b l cw 曲c a c h e ( s w c ) 【6 】是典型的内核级单线程体系结 构w 曲服务器。k h t t p d 采用了s p e d 体系结构,实现在内核中。k h t t p d 由一个线程来 完成单个连接的所有操作。处理过程同用户级s p e d 型结构相同,但由于在内核执行,避 免了用户层和核心层之间的多次数据拷贝和系统调用的开销。同时由于运行在内核中, l 【 l 仰d 不需要调用类似s e i e c t 等扩展性较弱的系统调用来获得事件驱动,可以直接访问 内核数据来获得事件驱动,从而有效地提高了处理速度。由于内核资源有限,核内的w 曲 国防科学技术人学研究生院学位论文 s e r v e r 一般只能处理静态h t l l p 请求,动态请求需要转发的用户级的服务器上去处理。s u i l 的网络加速器也采用了类似结构。 2 1 2 2 内核非均匀多线程事件驱动型( 棚e d 删) 本类型服务器的典型代表是r e dh a tl i n u x 开发组开发的t u x l l 7 增务器。t u x 类似于 “n u x 的设备驱动器,作为可加载的模块可以根据需要加载进内核或从内核卸载。t u x 运 行时包括两个队列,一个是监听s o c k e t 的接收队列,另一个是保存将要执行的磁盘i ,o 操 作的工作队列。类似于用户级的a m p e t 型,t u x 由单个线程处理连接请求,当需要进 行磁盘i o 时,将请求放迸磁盘i ,o 工作队列,由预先创建好的辅助线程来专门执行i o 操作。t u x 不仅具有k h t t p d 所具有的内核服务器的所有优势,除此之外,t u x 拥有自 己的内核c a c h e ,并实现了z e r o c o p y 的t c p 发送,因此t u x 的性能表现出很大的优势。 当然t u x 也只能处理静态请求,动态请求同样需要转发到用户级的服务器。 2 2 各体系结构性能比较 本文采用了统一的测试环境来对比和分析各种体系结构的w 曲服务器在不同的系统 负载、请求数量等条件下的服务性能。分别从各种体系结构的w 曲s e r v e r 中选择了s p e t 型的商用服务器z e u s 、m p 结构的a p a c h e 服务器以及内核级的t u x 进行性能比较。测试 环境为易得服务器,双至强c p u 的s m p 环境,2g b 内存,3 6g b 单块s c s i 硬盘,千兆 网卡。服务器以超五类线链接至千兆交换机。使用三台或五台联想p c 机作为测试客户端, p c 配置为p e n t i u r i l42 0g 1 1 z 的c p u 、5 1 2m b 内存,4 0g b 的5 4 0 0 转i d e 硬盘,集成百 兆网卡,使用普通网线链接千兆交换机。测试工具采用了s p e c w e b 9 9 ,分别进行并发链 接数为3 0 0 、6 0 0 和1 0 0 0 的测试。服务器的o s 为r e d h a te n t e l p r i s e “n u x 。 各个服务器分别采用了如下的体系结构,如下表所示: 表2 一1w e bs e r v e r 结构比较 用户级内核级体系结构优点缺点 不需要进程调用扩展性弱 z e u s 用户级单进程事通讯以及进程上的系统调用获得 件驱动型下文切换事件驱动 并行性好,避进程间通讯及 a p a c h e 用户级多进程型免了进程创建和上下文切换开销 销毁的丌销较大 避免了用户 内核非均层与核心层之间占有内核资 t u x 内核级匀事件驱 的数据拷贝直源,只能对静态请 国防科学技术大学研究生院学位论文 动型接获得事件驱求进行处理 动,拥有内核 c a c h e 。零拷贝 t c p 发送 测试结果分别如下各表所示。其中,加权带宽是s p e c w c b 9 9 综合各类访问请求( 不 同访问数据量、不同比例) 的子带宽加权求和,为b “p e rs e c o n d 。为理解v a l i d 链接和i n v a l i d 链接,不妨将每个并发链接理解为单独的用户,v 甜i d 链接是指该用户所进行全部请求响应 中错误响应的比例较低,可满足要求;而i n v a l i d 链接则指请求响应错误过高的用户;两值 相加应等于所测试的并发链接数。c o n n m i n g 是指链接的平均响应带宽在3 2 0k b p s 和4 0 0 k b p s 之间,标准s p e c w 曲测试均是看重该值,而非v a l i d 值。每秒可处理操作数则指服务 器能在一秒中正确处理的操作( 即为w 曲请求) 数目。 表2 2 并发链接数3 0 0 的测试结果( 三个客户端) 测试对象平均加权带宽 、融i d + c o n f o n n i i l g每秒 响应时 ( b p s )i n v a l i d 并链接数可处理操 间( m s ) 发链接数作数 a p a c h e 3 8 2 23 1 3 6 0 0 4 93 0 0 + o 5 67 6 5 t u x 3 2 0 43 7 3 5 8 5 2 43 0 0 + o3 0 0 9 0 7 乃e u s3 4 2 。5 3 5 7 8 5 3 3 73 0 0 + o3 0 08 5 5 表2 3 并发链接数6 0 0 的测试结果( 三个客户端) 测试对象平均加权带宽 v 甜i d + c o n f b 肌i n g每秒 响应时 ( b p s ) i n v a l i d 并发链接数可处理操 间( m s )链接数 作数 a p a c h e 7 5 8 _ 21 5 7 4 1 6 8 5 6 0 0 + o07 6 9 t u x 4 5 6 1 2 6 1 5 3 5 116 0 0 + o6 0 0 1 2 9 6 z e u s5 3 6 12 2 8 5 7 7 3 36 0 0 + 06 0 0 1 1 0 0 表2 4 并发链接数1 0 0 0 的测试结果( 五个客户端) 测试对象平均加权带宽 v i l i d + c 0 n f - o 肌i n g每秒 响应时间 ( b p s )i n v a l i d 并发链接数可处理操 ( m s ) 链接数 作数 a p a c h e 1 2 4 7 29 5 5 1 4 2 8 9 8 9 + 1 107 5 0 t u x7 9 1 115 0 5 5 8 9 99 9 9 + l6 7 8 1 2 4 4 z e u s9 9 2 51 2 6 1 4 5 3 69 9 6 + 45 6 5 9 8 7 由以上表格可以看出,t u x 作为内核服务器具有明显的性能优势。在并发链接数 分别是3 0 0 ,6 0 0 ,l o o o 的情况下,t u x 在响应时间上比a p a c h e 分别降低了1 6 2 ,3 9 8 和3 6 6 。加权带宽分别提高了1 9 1 ,6 6 1 和5 7 6 。每秒可处理操作数分别提高了 7 国防科学技术大学研究生院学位论文 1 8 6 ,6 8 5 和6 5 9 。z e u s 在响应时间上比a p a c h e 分别降低了l o 4 ,2 9 3 ,2 0 4 。加权 带宽分别提高了1 4 1 ,4 5 2 和3 2 1 。每秒可处理操作数分别提高了1 1 8 ,4 3 1 和 3 1 6 。对比并发链接数为3 0 0 、6 0 0 和1 0 0 0 隋形,不难发现t u x 在6 0 0 个并发链接的情 形下,性能提高最明显,c o n f i m i n g 数最高,服务质量最好。当并发链接数上升到1 0 0 0 的情形下,性能提高率稍有回落。这说明占有较多的内核资源,对整个系统的影响也是不 容忽视的。 t u x 虽然具有内核级服务器的优势,但仍然是由单个线程完成一个链接上的所有操 作。当重负载情况下,需要进行磁盘i ,o 的请求数也会迅速增加,这样不可避免地会大大 增加线程间通讯与线程上下文切换所带来的开销,严重影响性能。本文第三章节所提出的 流水体系结构将每个请求分成流水线的各个部分,相互独立,互不干涉,避免了线程上下 文切换和通讯开销。 2 3 高性能bs e r v e r 的设计原则 根据以上的分析,可以看出影响服务器性能的主用瓶颈在于磁盘i o ,用户层与内核 层之间的数据拷贝以及事件驱动机制。因此内核级服务器在性能上要明显优于用户级服务 器。由此可以得出如下的高性能w 曲s e r v e r 设计原则: 使用多线程,增加并行性并且能够发挥s m p 的优势。 多线程模型有可变性,可以根据需求灵活地定义线程数目和功能,在不同系统下 实现不同的具体线程模型。 避免使用可扩展性弱的系统调用,例如s e l e c t 。 尽量减少线程间的同步和相互等待,增加并行性。 尽量减少因i o 操作引起的阻塞。 尽量减少线程创建与回收,以及线程间通信的开销。 尽可能在核内提供服务,以便减少数据拷贝和系统调用的开销。 2 4 流水线w e b 服务器结构的优点 本文从上面的分析中总结出流水线w e b 服务器结构的优点【4 3 1 有以下几个方面: ( 1 ) 使线程数目和同时服务的客户数无关,可以有效控制线程数,减少线程切换和通 信的开销。 ( 2 ) 增加了服务的实时性,不会使一个h t t p 请求在处理的中间阶段因为资源不足而中 国防科学技术大学研究生院学位论文 途天折o ( 3 ) 能够方便地应用最小文件优先算法,提高服务器的处理效率。文献 4 4 提出采用 最短连接优先的算法可以提高服务器的性能,并且对于长时间的连接牺牲最小。 ( 4 ) 能够动态地改变流水线中不同阶段的工作线程数目和优先权。在易发生阻塞的瓶 颈阶段多设置工作线程或设置高的优先权,从而减少瓶颈。 ( 5 ) 将容易发生阻塞i o 操作单独划分为一个处理阶段,在实现时集中处理,易于应 用各种i ,o 策略,不必使用s e l e c t 系统调用。 ( 6 ) 单个工作线程流程简单,易于编程,代码模块化和可维护性强。 基于流水线w e b 服务器结构的上述特点,本文在第三章提出了一个流水线结构的w e b 服务器体系结构一k e t a 。 2 5 小结 由于i n t e m e t 上w 曲应用的爆炸性增长,如何提高w 曲服务器的性能一直是学界和业 界关注的问题。w 曲服务器的体系结构对其性能的影响是至关重要的。本章综述了目前主 流的几种w 曲s e r v e r 体系结构。并分析了其各自的优缺点。提出了一些w e b 服务器体系 结构的设计原则,并且总结了流水结构的优点,这些对于w 曲s e r v e r 体系结构的设计以及 性能的提高具有一定的指导意义。 9 国防科学技术大学研究生院学位论文 第三章k e t a 体系结构的设计 由第二章可以看得出在大负载应用背景下,核外实现的w e b 服务器执行效率较低,例 如对象数据的读取、响应数据的发送需要进行核内与核外之间的拷贝等等,而内核级的 w 曲服务器就可避免上述缺陷。出于内核稳定性考虑,主流的内核w 曲服务器一般不进行 诸如数据库访问等复杂动态处理,一般仅针对静态页面访问进行加速。核内w 曲服务器主 要有单线程事件驱动型和非对称均匀多线程事件驱动型。例如第二章所描述的k h t t p d i l 5 】 和s c a l a b l ew 曲c a c h e ( s w c ) 就是典型的内核单线程事件驱动型w 曲服务器;t u x 【1 7 】 系统则是l i 肌x 平台上的典型的非均匀多线程事件驱动型w 曲服务器。t l d ( 系统由r e d h a t 公司提出并实现,t u x 系统包含内部的对象数据缓存,实现了零拷贝的数据发送,性能较 高。 不同服务器具有不同的技术实现策略,主要包括是否缓存、是否实现零拷贝、t c p i p 协议栈的实现层次等。目前典型的w 曲服务器的技术实现策略如下表所示。 表3 1 主流典型w e b 服务器的技术实现策略区别 服务器名体系结构缓存机制零拷贝协议栈层次 a d a c h es m p u s e r 文件系统无 s o c k e t z e u ss p u s e r文件系统有 s o c k e t i i ss p u s e r 文件系统是 s o c k e t k h t t p ds p k e r n e l 文件系统无 s o c k e t t u xa m p k e r n e l内存有 s o c k e t s w cs p k e r n e l 可选是 t c p 从上表可以发现,目前主流的w 曲服务器均采用多进程多线程模式来响应用户的w e b 请求,但大部分的w 曲服务器均采用对称或是同构结构,即所有的线程功能完全相同,具 有同等能力,独立或在辅助线程的帮助下完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宿州职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年安徽商贸职业技术学院高职单招(数学)历年真题考点含答案解析
- 2025年安徽交通职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 肢体肿胀的观察与护理
- DIP知识课件教学课件
- 物业服务接待课件
- 上消化道出血患者个案护理
- 2017年安全课件教学课件
- 湖南省祁东育英实验学校2024-2025学年高三下学期第二次(4月)月考物理试题含解析
- 福建华南女子职业学院《嵌入式控制系统及应用》2023-2024学年第二学期期末试卷
- 《促进儿童个性发展之策略研究》17000字(论文)
- 地方导游基础知识电子教案 专题七 学习情境一 陕西省课时教案
- 创伤失血性休克中国急诊专家共识(2023)解读课件
- 项目管理工程师招聘笔试题与参考答案(某大型集团公司)2024年
- 高中文言文实词虚词总集(打印版)
- 咨询实施顾问能力素质模型
- 婚礼主要工作人员及分工职责
- 2024年铁路线路工(高级技师)技能鉴定理论考试题库(含答案)
- 工程造价预算书
- TGDNAS 043-2024 成人静脉中等长度导管置管技术
- 安徽省江淮十校2023-2024学年高一下学期6月期末测试语文试题(解析版)
评论
0/150
提交评论