2008年4月6日星期日

Windows服务器下的IIS和Apache性能比较

  目前最流行的建立网站的服务工具就要属Apache与IIS了。那么他们之间到底哪个性能更好呢?到底哪个工具才是最适合我们的呢?最近我也对这方面的问题进行了一番研究。

  如果是基于Linux平台的话,那不必多说自然是Apache了,因为IIS只能在Windows环境下运行,而Linux+Apache的整体性能、安全性、通用性也都强于Windows 2003+IIS 6.0,不过如果在Windows 2003的服务器上,IIS 6.0和Apache 2.2.6到底哪个性能最好呢?

  我于是做了一个测试,在不同型号的Windows 2003服务器上安装IIS和Apache,比较两者的性能,最基本的比较是静态HTML网页读取的比较,在我的测试之中,我发现Windows 2003下的IIS 6和Apache 2.2.6在静态HTML文件的处理性能上基本是相同的。

  测试环境:三台不同的服务器,CPU分别是P4 2.8E超线程,酷睿2 E6300,至强 5110,软件分别安装的IIS6和Apache 2.2.6.三台服务器都放了一个40K的HTML文档,我使用WAS(Web Application Stress Tool),开100个线程对这三台服务器进行吞吐量处理测试,测试其每秒钟处理线程的能力(Requests per Second),测试时间为1分钟。

  对于P4 2.8E和E6300,无论对于IIS和Apache,两者的点击数都基本上是250,每秒钟处理响应的数目大约为4.17.这说明对于静态HTML文件的处理能力,IIS和Apache在Windows平台下是基本相同的。

  而Intel至强5110的测试数据就相差非常大,在IIS下点击数达到了1838,每秒钟处理响应的数目达到了30.63,几乎比前两台服务器高了7倍,这说明在同样的软件环境下,即使是入门级别的CPU,Intel至强服务器也具有远远超过普通奔腾服务器的性能。

  因此得出结论,如果一个网站的大部分页面都是静态页面,并且是假设在Windows 2003服务器上的,那么IIS和Apache两者性能基本相同,要想提高网站的整体吞吐量,需要在服务器硬件上进行升级。