由于機器難找,所以暫時在虛擬機下進行對比,好處是系統的切換比較快,省了不少時間,其二是由于硬件差異趨近于無,所以相對結果還是比較客觀的,除此之外還可以看看在有限的硬件條件下系統的響應能力。此次測試的內容是測試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