IIS VS Nginx实测对比-第一回合,静态文件-虚拟机下的对决

由于机器难找,所以暂时在虚拟机下进行对比,好处是系统的切换比较快,省了不少时间,其二是由于硬件差异趋近于无,所以相对结果还是比较客观的,除此之外还可以看看在有限的硬件条件下系统的响应能力。此次测试的内容是测试IIS和Nginx对纯静态文件的处理能力,动态处理能力将在下一回合见分晓。
一、硬件环境
本次测试是在一台双核64位 AMD Athlon5400+ ,内存2G的桌面机上进行。
二、系统环境
宿主系统是ubuntu10.04 虚拟机环境是virtaul box,虚拟2cpu,1G内存的虚拟机2台
nginx运行在ubuntu 10.04 服务器版,IIS是6.0版,运行在windows 2003 R2上,作为控制组的apache和nginx在同一个虚拟机上
nginx的系统是ext4的文件系统,IIS6在NTFS文件系统

三、测试工具
apache ab,可能有人会说ab如何如何,不过暂时没有找到其他的压力测试工具,对于所有的server用同一种工具还是蛮公平的,如果你觉得ab的某些特性可能会造成测试的差异,或者你有更好的工具,可以跟我联系,我会及时更新测试的结果。

四、测试方法
测试针对每个server进行5轮测试,ab的参数分别为
  1. -n 10000   -c 200
  2. -n 50000   -c 200
  3. -n 50000   -c 400
  4. -n 100000 -c 400
  5. -n 100000 -c 800
每一轮测试交替增长并发数和测试的总请求数,以求压迫出server的最终能力。
在测试前我用了apache作为控制组结果。

五、测试结果

控制组结果(Apache)
                        1                2                3                4
request/sec        651.39        634.99        675.26        652.5
time taken        15.352        15.748        14.787        15.326
time per request    1.535        1.575        1.479        1.533
               
request/sec        522.58        489.75        496.18        493.49
time taken        95.679        102.094    100.769    101.32
time per request    1.924        2.042        2.015        2.026

每一组我都测试了4次,本来该取一个平均值,不过控制组我就省了,因为后面的结果基本上一目了然,不用和控制组对比了,这里我们可以看到,apache在第三轮就败下阵来,实际上第三轮我执行了好几次,但是实在是一次都执行不了,故放弃了。

接下来是IIS的数据

                            1                2            3            4
request/sec           2006.2    1731.44    1719.33    1735.58
time taken               4.98    5.776    5.816    5.762
time per request      0.498    0.578    0.582    0.576
               
request/sec          1971.89    2031.24    1965.61    1928.97
time taken            25.356    24.615    25.437    25.921
time per request    0.507    0.492    0.509    0.518
               
request/sec          2013.22           
time taken           24.836           
time per request    0.497       

IIS成功的挺到了第三轮,不过没有挺过就挂了,其实在第2轮就出现过请求超时,不过还能继续跑,第三轮成功跑完一次,也就是有数据这次,之后就再也跑不动了。从数据上看来IIS比Apache快不少,至少有两倍的性能提升,看来IIS5到IIS6进步不小。

最后是Nginx的数据:
                      1              2              3              4
request/sec    2538.52    2403.67    2269.01    2587.13
time taken    3.939    4.16    4.407    3.865
time per request    0.394    0.416    0.441    0.387
               
request/sec    2609.65    2773.08    2808.05    2854.92
time taken    19.16    18.031    17.806    17.514
time per request    0.383    0.361    0.356    0.35
               
request/sec    2792.14    2886.61    2832.07    2837.92
time taken    17.907    17.321    17.655    17.619
time per request    0.358    0.346    0.353    0.352
               
request/sec    2857.75    2880.57    2881.52    2919.46
time taken    34.993    34.715    34.704    34.253
time per request    0.35    0.347    0.347    0.343
               
request/sec    2733.6           
time taken    36.582           
time per request    0.366

Nginx成功的撑到了第5轮才败下阵来,请注意每一轮的数据,Nginx的性能相当的稳定,稳定性和性能都非常的理想,在静态文件处理的能力上比Apache有数量级上的提升,对IIS6也是绝对压倒性的优势,无论是处理速度还是并发能力都是本次测试的绝对冠军。

下集预告:
下一轮测试将对比Nginx和Tornado以及IIS6加上ASP.NET在动态处理能力上的性能对比。精采绝伦绝对不容错过

如果对本次测试的过程以及结果有异议,请留言说明,请不要留下 “单纯比对静态文件没有意义”等没有意义的回复,期待您的精彩回复。

posted on 2010-06-18 00:24  亚历山大同志  阅读(11148)  评论(56编辑  收藏  举报

导航