论文部分内容阅读
目前,Web服务器系统面临两个显著变化:⑴随着网络速度的提高,越来越多的本地任务处理将依赖远程服务,因此最终用户所能感知的任务处理速度也越来越受限于远端服务器的处理能力,即要求Web服务器系统具有高性能;⑵热门站点必须具备瞬时承受每秒数百万次的点击率,特别是当一些重大事件发生的时候,如奥运会等。这些系统的平均吞吐量并不一定很大,但它们的峰值吞吐量却很高,这就要求Web服务器系统具备很好的扩展性。面对上述需求,通常的解决方法包括两个方面。一个方面是提升Web服务器的硬件处理速度,然而实际应用中,目前常见的Web服务器并不能充分使用硬件资源,展现与硬件资源相匹配的性能。造成这种现状的主要原因是操作系统不能很好地支持Web服务器应用,而且软件的体系结构阻碍着Web服务器对操作系统服务的调用。另一个方面是采用基于单一系统映像的Web服务器集群系统,这也是目前应用最广泛的一种方法。通常,Web集群服务器中的负载均衡器(一种前端),截获客户到服务器的HTTP请求并根据负载均衡的原则调度每一个请求。可是,Web集群服务器所表现出来的性能不象期望中随服务器数量的增加而继续增长。此外,应用负载均衡器还有以下缺点:不支持存储扩展性、不支持复杂的调度算法、不支持事务处理的完整性和不支持区分服务。所有这些问题都源自负载均衡器不能支持基于内容的请求路由机制和请求调度算法没有考虑请求的内容。目前,Web集群系统的研究者已经开始研究基于内容的请求路由机制和基于内容的请求调度算法,但他们提出的路由机制和调度算法却阻碍着Web集群性能和扩展性的进一步提高。我们认为Web集群服务器系统的性能主要受三个因素的影响:单个Web服务器的性能、请求路由机制和请求调度算法。其中,请求路由机制和请求调度算法又决定着Web集群服务器系统的扩展性。因此,本文的研究工作将围绕这三个方面展开。具体内容为:①量化分析现有高性能Web服务器的I/O策略和并发策略,提出ASPED(异步单进程事件驱动)软件结构。经SpecWeb99测试,基于ASPED结构的Jaguar服务器的性能要比现有最好的基于AMPED(非对称多进程事件驱动)结构的Flash服务器好27.1%。②研究现有Web集群服务器中支持内容调度的请求路由机制,提出HTTP Splicing技术。经Httperf测试,采用HTTP Splicing技术的前端的性能要比现有采用TCP Splicing技术的前端的性能提高至少3.5倍。③尽管HTTP Splicing技术大幅提高前端的吞吐量,但由于x86硬件平台的限制,由单个主机构成的前端仍不可避免地成为Web集群的性能瓶颈。所以,我们又分析、研究可扩展请求路由机制,并提出集中调度、分布路由结构。经实际和模拟双重测试,可以最多由80台主机构成分布式前端,共同提供16Gb/s的吞吐量。④通过排队论理论分析,提出一种自适应、可扩展静态HTTP请求调度算法LoadCache_rep。与现有LARD(局部敏感的请求分发)算法相比,LoadCache_rep算法的优势有两点:一个是自适应性;另一个是更准确地估计后端负载。其中,在对后端负载估计的对比测试中,应用在LoadCache_rep中的方法要比LARD算法中的方法最多好14.7%。经模拟器SimWebCluster测试比较,在现有各种静态HTTP请求调度算法中,LoadCache_rep算法确实是最好的一种。⑤由于动态HTTP请求处理的多样性,我们的设计原则是通用优化,而不是针对某个具体的动态请求处理。通过排队论分析,提出优化分离式调度策略。在理论分析中,优化分离式调度策略要比现有混合式策略的性能提高22%,而在实际测试中,性能提高了22.5%。