測試工具:ab(apacheBench)
硬件環境:
Intel xeon cpu E5-2682 v4 2.50GHz 4 core
8GBytes 內存
軟件環境:
ubuntu16
nginx
靜態文件
3Kbytes
26000次響應/秒(平均值)
吞吐量:111Mbytes/秒(平均值)
並發數:300
每次請求響應時間:10.8[ms](平均值)
------------------------------------------------
58Kbytes
20000次響應/秒(平均值)
吞吐量:1165Mbytes/秒(平均值)
並發數:300
每次請求響應時間:14.2[ms](平均值)
-------------------------------------------------------
beego
動態文件
3Kbytes
16000次響應/秒(平均值)
吞吐量:52Mbytes/秒(平均值)
並發數:330
每次請求響應時間:20.2[ms](平均值)
性能測試結果分析:
從以上結果可以看出,nginx對靜態文件的處理性能,不論是是吞吐量、並發量、單位請求處理時間上,都很強大。而且cpu占用只有50%。整個性能表現受到ab單進程的限制,並沒有完全發揮。
而beego的動態文件處理,性能也很強大。同樣的文件(3Kbytes),nginx作為靜態文件處理時,性能是每秒2.6W次響應。到了beego作為動態文件處理,依然可以達到每秒1.6萬次響應的性能,性能下降較小。相對於靜態文件處理,動態文件處理server需要經過更多流程才能完成輸出,所以都會出現性能下降。
beego在處理時,服務器 cpu使用率達到了95%,而之前在筆記本上測試時,i3 cpu使用率也達到了93%,說明beego擁有良好的伸縮性。可以隨着硬件(CPU、內存)的加強,發揮出更強的性能。