服务器 频道

广域网中WWW服务器的性能分析

    【IT168 专稿】WWW负载生成器可以用来评估web服务器性能,因此对服务器性能优化有很重要的指导作用。但是当前的评估如WebStone、SPECWeb大多是在局域网环境下进行,忽略了一个重要方面:实际应用中,这些服务器在广域Internet上的表现如何呢?

    为了分析WAN条件是如何影响WWW服务器性能(WASP,Wide-Area Server Performance)的,笔者通过模拟WAN的特征,引入一些因素,比如,在可控和可再生条件下的延迟和包丢弃,通过实验来检测WAN对服务器的影响。我们研究这些因素如何与主机TCP的实现相互作用,以及这些因素对服务器性能的影响。

    关于WWW服务器,主要有三点需要关注:观察到的吞吐量、客户端得到数据的响应时间以及最大吞吐量(容量)。如果忽略WAN条件,服务器可以很容易的发挥最大功效,然而一旦处于WAN中,延迟和丢弃会使服务器达到其最大容量变得十分困难。观察到的吞吐量会使我们对服务器的性能产生误判。

    分析表明,当服务器处于真实的广域网条件下,其性能表现与现行的在局域网下测评的表现有着天壤之别,表现出截然不同的性能属性和等级行为。

一、WASP测试环境

1)硬件和操作系统软件

     我们的测试环境有8台作客户端的PC,一个千兆交换机和一个基于RISC的服务器。客户端配置:处理器:500MHz Pentium Ⅲ ;内存: 96MB;操作系统:FreeBSD 3.3 ;每台客户端都带有100M网卡接口,然后用交换机将它们点对点全双工联接起来。服务器采用为IBM RS/6000 43P 260:200MHz Power 3处理器,具有4MB L2缓存和256内存,运行IBM的UNIX操作系统AIX 4.3.3,用千兆网卡与交换机相连。

    在服务器操作系统中,我们用SACK 和New Reno协议来扩充TCP/IP协议栈。AIX的TCP/IP协议栈是从BSD 4.4发展过来。AIX系统本身就是先前为了处理大规模工作量而设计的。

    在客户端操作系统,我们结合FreeBSD 2.6到3.3的Rizzo SACK源代码,共同实现服务器SACK的实现。

2)WWW服务器软件

     当前许多web服务器采用了不同的架构和最优化设计,所以就有不同的性能特征。如果只关注于一个特定的实现过程,那我们的研究就会有局限性。为了把这种局限降到最低,我们将会同时检测WAN对通用型和优化型服务器的影响。我们决定采用两种服务器:Apache, 作为通用服务器的代表;Flash,则作为优化型的例子。

3)WWW客户负载生成器软件

    我们用两个HTTP负载生成器去评估WWW服务器性能。S-client作为微型测试,生成对服务器上同一文件的大量请求,能使我们观察到性能如何随请求文件大小而变化。我们自用另一种负载生成器Waspclient用于大型测试,评估更实际的累计行为。

    S-client是轻量级、基于事件请求的生成器,它使用单一的进程和select()系统命令去管理大量面向服务器的并发动态连接。在我们的测试环境中,每个客户端机器运行单一的s-client进程,此进程一次能生成2048个并发连接。图1显示的是负载生成的结构图。

图1. 负载生成的结构图

     整个系统是一个封闭式队列网络,这就意味着我们可以调整客户端数目。通过改变并发连接数,我们能改变测试时负载。这就可以观察当负载增加时系统表现出来的性能,以及改变参数(像分组往返时间Round Trip Time,丢帧率Loss Rate)来看系统行为的变化。

     Waspclient是从s-client和SURGE测试软件的源代码改进而来。SURGE作为负载生成器用于捕捉WWW站点的各种通信特征,包括重尾文件分布(Heavy-tailed File Distribution)和请求大小分布(Request Size Distribution)。SURGE不能产生足够大的负载使服务器达到饱和。但是,SURGE提供了更为贴近实际的负载情况,所以我们这里采用它。

0
相关文章