由于机器难找,所以暂时在虚拟机下进行对比,好处是系统的切换比较快,省了不少时间,其二是由于硬件差异趋近于无,所以相对结果还是比较客观的,除此之外还可以看看在有限的硬件条件下系统的响应能力。此次测试的内容是测试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的参数分别为
每一组我都测试了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在动态处理能力上的性能对比。精采绝伦绝对不容错过
如果对本次测试的过程以及结果有异议,请留言说明,请不要留下 “单纯比对静态文件没有意义”等没有意义的回复,期待您的精彩回复。
作者博客:http://Alexander-Lee.cnblogs.com