WebBench 5.0性能测试
WebBench是针对服务器作为Web Server时的性能进行测试,我们在被测服务器上安装了IIS6.0组件,以提供测试所需的Web服务。在测试中我们开启了网络实验室中的32台PC(Celeron 1.7/256MB/40GB/100Ethernet)作为客户端,分别使用了WebBench 5.0内置的动态CGI以及静态页面脚本对服务器进行了测试。
静态测试是由客户端读取预先放置在服务器Web Server下的Web页面(wbtree),这项测试处理器性能、磁盘系统以及网络连接性能都会影响测试结果。如果磁盘系统采用的是SATA RAID 0或单颗SCSI硬盘级别以上的磁盘系统,那么此时磁盘性能一般不会成为瓶颈。我们的测试显示两个平台的网络连接性能几乎一样,因此这里反映的依然是两个平台的处理器性能。
静态测试:Requests处理能力
我们使用了实验室中全部的32台PC向被测服务器发送请求,测试曲线同我们预计的相似,请求处理能力均为线性增长,并没有达到峰值。标准静态脚本测试中,两个Pentium D平台的曲线几乎完全吻合,两个双Xeon平台的曲线完全吻合——超线程此时基本没有发挥作用。
32个客户端时,Pentium D 830平台最高请求响应数量达到了11000个每秒,而双Xeon平台的最高请求响应数量只有10000个左右,前者高出了10%左右。根据这个脚本测试所的吞吐量数据来看,Xeon平台最高吞吐量只有60MB/s,而Pentium D平台最高吞吐量是67MB/s左右,差别也是10%,因此这个地方的测试结果是由于测试过程产生的负载不同而导致的。不过在这个过程中都是32个客户端,出现这种现象原因我们还在查找中。
每客户端2线程静态脚本测试:Requests处理能力
多线程静态脚本测试中,每个物理客户端发出两个线程,可以看到4个平台的测试结果曲线完全吻合在了一起。显然在这种静态应用下,我们有限的客户端数量无法给予被测服务器足够的负载,因此从前面两项测试中,看不出来谁更加有优势。
动态测试偏重于对服务器CPU子系统的性能测试,它对于Web服务器提供了足够的负载。我们将一个C语言编写的CGI源文件Simcigi.c编译为Simcgi.exe,并将其作为动态测试中的CGI脚本。在测试过程中,每台安装了WebBench客户端软件的PC,会在300秒的时间内持续向服务器发送CGI请求,而控制台会纪录并汇总服务器所响应CGI请求的数据。
当WebBench测试开始后,客户端会以每四台一组依次连接到服务器并发送CGI请求。当测试结束后,控制台会收集数据并绘制出服务器CGI响应数的变化曲线。CGI测试的成绩高低,主要取决于服务器处理器子系统性能的优劣。处理器子系统包括CPU、内存以及内存控制器,CPU频率、缓存以及内存容量大小和内存带宽,都会影响该项成绩。
从上面的测试曲线可以看出,当1个客户端、4个客户端和8个客户端同时发送请求的时候,不同的平台的性能差异很小。当连接到服务器的客户端数量越来越多的时候,两个平台的性能差距就会越大。
开启了超线程技术的双Xeon平台性能最高,最大响应数量为4171个;关闭了超线程技术的双Xeon平台次之,最大响应数量为3610个,性能下降了15%左右;两个Pentium D平台的性能并没有超过没有开启超线程的双Xeon平台,最大响应数量为2880个左右,比前两者分别低了40%和25%。两个Pentium D平台对比,基于TYAN S5160主板的系统性能略高一点,前面的CPU、内存测试的结果支持这个测试结果。