论文部分内容阅读
Web应用的日益推广是促使Interact飞速发展的关键动力之一。由于基于Web的信息服务具有的信息规模大和访问频率高等特点,提高Web服务器的服务能力便成为决定信息服务质量的关键因素。目前提高Web服务器能力的方式主要有三种:增加Web服务器的硬件资源,如CPU处理能力、内存大小和硬盘容量;将若干Web服务器搭建成cluster,集群向外提供Web服务;采用具有高可扩展性的Web服务器软件,通过采用新颖的体系结构和高效的技术实现策略,提高服务器的单机处理能力。第三种技术是提高Web服务器能力的基础和关键,本文针对如何通过设计和实现新型体系结构和信息处理技术来提高Web服务器的可扩展性和高性能进行深入研究。 本文首先深入分析了当前主流服务器的体系结构,对其进行了分类。并在实现技术和性能上做了详细的对比,从而总结出现阶段设计高性能Web服务器所要遵守的原则。 基于所提出的原则,本文提出了一种基于软流水体系结构的新型内核级多线程Web服务器体系结构——KETA(KErnel neTwork geAr)。KETA体系结构通过将完整的Web请求处理流程划分为若干流水栈,每个线程只负责完成Web请求处理的特定环节,互不干涉,降低了并行粒度,使得各Web请求实现了任务内并行,各任务在执行过程中重叠,提高了服务的并发度和性能。 本文结合KETA体系结构的具体实现环境研究了若干网络优化技术。通过采用Socket复用技术使得KETA在将自身不能处理的动态请求转发到用户级服务器之后,仍可掌握该请求所在连接的控制权。这样,便保证之后在该连接上的静态请求仍然由KETA来处理。从而将以前整个连接的转发改进为单个请求转发,降低了转发的粒度,增加了KETA的利用率,提高了处理效率。 最后,基于上述研究成果,本文在Kylin操作系统上实现了内核级流水体系结构的KETA服务器。并充分利用KETA服务器在内核实现的优势,提出了利用mbuf复用技术进行数据发送的策略,在发送过程中直接对mbuf链及Socket发送缓冲区进行操作,有效地提高了KETA服务器的处理效率。 通过评测表明,KETA的流水线体系结构更适合在SMP平台下,较大负载的服务环境。并且KETA服务器的性能优越,较当前其他几种内核级Web服务器具有明显的优势。