Tengine和Nginx的性能比較


淘寶基於Nginx二次開發的Tengine Web服務器聲稱對Nginx做了眾多優化,達到性能提升xx倍雲雲。為了驗證及評估替換Nginx的必要性,筆者自行使用apache的ab工具對Tengine和Nginx做了一次簡單的性能比較

測試工具:Apache HTTP server benchmarking tool
測試機:OS X YOSEMITE(10.10.2)
測試機內存:16G

測試服務器操作系統:CentOS 7.0.1406
測試服務器內存:2G 

測試程序Web服務器:NGINX+Netty
測試程序語言:Scala 2.10.3
測試頁面:/login
測試頁面css:4個獨立的css文件
測試頁面js:6個獨立js文件
測試頁面圖片:6個png文件
測試頁面總大小:2744字節 
 
Tengine版本:2.1.0(基於NGINX1.6.2)
NGINX版本:1.6.2
配置優化情況:都使用缺省配置


受限於測試環境和測試時間,只是簡單測試了單用戶單並發到100個用戶5000次並發的情況。每種測試分別執行了10次取平均數。最終測試數據如下:
 
用戶&並發連接 1&1 1&100 100&5000 500&5000
Web服務器 Tengine Nginx Tengine Nginx Tengine Nginx Tengine Nginx
平均響應時間(s) 0.002 0.002 0.115 0.134 4.62875 4.5275 4.76175 4.43075


測試方式
1. 為盡量保證測試結果的可靠,每種測試都進行10次,取平均值
2. 測試服務器采用VMWARE虛擬機,保證硬件配置一致
3. 每次測試完后,通過鏡像snapshot功能恢復干凈的測試環境
 
可得到的結論有
1. Tengine和NGINX在單用戶單並發的情況下,性能沒有明顯差異。
2. 在單用戶並發數量少例如100的情況下,Tengine具備微弱優勢;而在用戶量和並發數都增加的情況下,NGINX具備明顯優勢。

其他測試結論
1.在測試過程中還發現,當使用nginx缺省配置做前段反向代理時,比起直接用Netty做Web服務器,訪問效率會下降66%
 
整個測試並不十分完善和嚴謹,也期待有人可以有更多時間得到更充分的測試數據。沒有測試到的情況有
1. Tengine與nginx在不同頁面大小和復雜度種的表現。因為Tengine聲稱對css,js在web服務器層面進行了合並處理,是否Tengine在特定頁面表現會更加優異,比如獨立css和js數量增加到一定臨界點,但這點在本次測試中沒有發現Tengine的優勢。
2. Tengine與nginx在不同的服務器硬件環境中的性能表現。

但這些測試也足以說明,從訪問效率上來看, Tengine並沒有宣傳的那么優秀。從穩定性考慮,使用原生態的Nginx或許是一個更佳的選擇,畢竟二次開發的產品出問題的可能性要大得多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM