今天使用ab(apacheBench)測試了一下beego的性能。 3Kbytes動態文件,在i3上可以達到每秒1W次響應的性能。但是在測試靜態文件時,beego出現了問題。ab測試參數:100次請求,併發數5。問題表現:70%的請求直接失敗,連接斷開。按道理來說,一個web server框架,靜態 ...
今天使用ab(apacheBench)測試了一下beego的性能。
3Kbytes動態文件,在i3上可以達到每秒1W次響應的性能。
但是在測試靜態文件時,beego出現了問題。
ab測試參數:100次請求,併發數5。
問題表現:70%的請求直接失敗,連接斷開。
按道理來說,一個web server框架,靜態文件的性能,應該是高於動態文件性能的。
在動態文件性能達到1W/s的情況下,沒理由靜態文件性能這麼低下。
然後查看了一下beego的源代碼。發現beego在處理動態文件請求時,有緩存。而處理靜態文件時,沒有緩存。
簡圖:
beego----動態文件----緩存-----文件系統
beego----靜態文件-------------文件系統
處理靜態文件時,是直接使用文件系統。一般的文件系統的併發量當然很低。
這就是beego的靜態文件處理性能低下的原因。
所以在進行網站部署時,需要將相應的靜態文件,放置到nginx上進行處理(相同的文件,nginx的靜態文件處理可以達到每秒1.5W次響應。
beego與nginx通過反向代理連接。這樣才能最大限度地保證網站性能。