| 【中文题名】 | 阶段化异步事件驱动高性能Web服务器 |
| 【英文题名】 | The Staged Asynchronous Event-driven High Performance Web Server |
| 【学科专业】 | 计算机应用技术 |
| 【论文级别】 | 硕士论文 |
| 【投稿时间】 | 2006-12-12 |
| 【中关键词】 | 阶段化,事件驱动,Web服务器,线程模型,异步IO, |
| 【英关键词】 | Stage,Event-driven,Web server,Threading model,asynchronous I/O, |
| 【分类导航】 | 工业技术>自动化技术、计算机技术>计算技术、计算机技术>计算机的应用>> |
| 【论文摘要】 |
面对巨量的并发请求,现有服务平台大都缺乏能跟随负载同步增长的可伸缩服务能力,从而造成服务品质急遽下降。针对这一问题,本文通过对现行主流服务器内部结构的比较分析,提出了使用阶段化异步事件驱动模型来解决处理高并发请求的问题。阶段化异步事件驱动模型是基于事件驱动框架的,并组合使用了线程池模型来处理并发请求。该模型将服务器的处理过程分解为一系列“阶段”,给每个“阶段”配以一个可以动态调节的线程池处理并发事件。各“阶段”之间通过事件队列来通信。
本文给出了阶段化异步事件驱动模型的应用实例,设计并实现了基于阶段化异步事件驱动模型的Web服务器。根据Web服务器的工作流程,将其划分为七个阶段:接收请求阶段、检查缓存阶段、缓存失效阶段、发送响应阶段、读阶段、写阶段及文件I/O阶段。资源管理方面,对每个阶段配有相应的事件队列,使用一组资源控制器对事件队列进行监测,根据它们观察到的服务性能,自动地调节资源的使用。缓存管理方面,提出了采用自适应缓冲置换策略,根据资源的大小,将大于阈值的资源按LRU算法移走,有效地实现了对页面的高效管理。异步I/O方面,采用JDK1.5所提供的非阻塞套接字,实现了读、写阶段的异步通... |
| 【论文题纲】 |
|
摘要 |
8-9 |
|
ABSTRACT |
9-10 |
|
第一章 绪论 |
10-20 |
|
1.1 研究背景 |
10-11 |
|
1.2 高性能Web 服务器的国内外研究现状 |
11-18 |
|
1.2.1 改进服务器软件设计方法 |
11-14 |
|
1.2.2 Web 服务器过载资源管理 |
14-16 |
|
1.2.3 分布式体系结构 |
16-18 |
|
1.2.4 针对OS 和Web 协议族的改进或优化 |
18 |
|
1.3 课题来源及研究的主要内容 |
18-19 |
|
1.3.1 课题来源 |
18 |
|
1.3.2 研究的主要内容 |
18-19 |
|
1.4 小结 |
19-20 |
|
第二章 阶段化异步事件驱动模型 |
20-35 |
|
2.1 需求分析 |
20 |
|
2.2 阶段化异步事件驱动模型 |
20-31 |
|
2.2.1 设计思想 |
20-21 |
|
2.2.2 总体结构设计 |
21-31 |
|
2.2.2.1 事件驱动模型 |
22-26 |
|
2.2.2.2 线程模型 |
26-28 |
|
2.2.2.3 事件与批处理 |
28-29 |
|
2.2.2.4 事件处理器 |
29 |
|
2.2.2.5 动态资源管理 |
29 |
|
2.2.2.6 过载控制 |
29-31 |
|
2.3 结构化服务的设计模式 |
31-34 |
|
2.3.1 封装模式 |
31-32 |
|
2.3.2 分割和管道模式 |
32-33 |
|
2.3.3 联合设计模式 |
33-34 |
|
2.3.4 复制设计模式 |
34 |
|
2.4 小结 |
34-35 |
|
第三章 阶段化异步事件驱动 Web 服务器的设计 |
35-53 |
|
3.1 经典Petri 网 |
35-37 |
|
3.1.1 Petri 网的基本定义 |
36-37 |
|
3.1.2 Petri 网变迁的发射规则 |
37 |
|
3.2 高级Petri 网 |
37-39 |
|
3.2.1 着色Petri 网 |
37-38 |
|
3.2.2 赋时Petri 网 |
38-39 |
|
3.2.3 多层Petri 网 |
39 |
|
3.3 高级Petri 网描叙工具-Renew8.0 |
39-40 |
|
3.4 Web 服务器的工作流程 |
40-41 |
|
3.5 Web 服务器阶段化设计 |
41-42 |
|
3.6 资源管理 |
42-45 |
|
3.6.1 队列管理 |
42-44 |
|
3.6.2 线程池控制器 |
44 |
|
3.6.3 批处理控制器 |
44-45 |
|
3.6.4 计时器和信号管理 |
45 |
|
3.7 缓存管理 |
45-46 |
|
3.7.1 传统的替换算法 |
45-46 |
|
3.7.2 自适应的内存缓冲置换策略 |
46 |
|
3.8 异步I/O 设计 |
46-51 |
|
3.8.1 底层NIO 模型 |
48-51 |
|
3.8.2 异步通信队列模型 |
51 |
|
3.9 小结 |
51-53 |
|
第四章 阶段化异步事件驱动 Web 服务器的实现 |
53-65 |
|
4.1 HTTP 请求处理 |
53-61 |
|
4.1.1 请求处理相关协议 |
53-57 |
|
4.1.2 接收请求阶段 |
57-60 |
|
4.1.3 发送请求阶段 |
60-61 |
|
4.2 页面缓存管理 |
61-63 |
|
4.2.1 检查缓存阶段 |
61 |
|
4.2.2 缓存失效阶段 |
61-63 |
|
4.3 异步I/O 的实现 |
63-64 |
|
4.4 小结 |
64-65 |
|
第五章 功能与性能测试 |
65-68 |
|
5.1 功能测试 |
65 |
|
5.2 性能测试 |
65-67 |
|
5.3 小结 |
67-68 |
|
结论 |
68-69 |
|
参考文献 |
69-73 |
|
致谢 |
73-74 |
|
附录 A 攻读学位期间参与的科研项目 |
74-75 |
|
附录 B 攻读学位期间发表论文目录 |
75-76 |
|
详细摘要 |
76-82 |
|
| 【DOI】 | LunWen.ID:2.2008.374044 |