今天使用ab(apacheBench)測試了一下beego的性能。
3Kbytes動(dòng)態(tài)文件,在i3上可以達(dá)到每秒1W次響應(yīng)的性能。
但是在測試靜態(tài)文件時(shí),beego出現(xiàn)了問題。
ab測試參數(shù):100次請(qǐng)求,并發(fā)數(shù)5。
問題表現(xiàn):70%的請(qǐng)求直接失敗,連接斷開。
按道理來說,一個(gè)web server框架,靜態(tài)文件的性能,應(yīng)該是高于動(dòng)態(tài)文件性能的。
在動(dòng)態(tài)文件性能達(dá)到1W/s的情況下,沒理由靜態(tài)文件性能這么低下。
然后查看了一下beego的源代碼。發(fā)現(xiàn)beego在處理動(dòng)態(tài)文件請(qǐng)求時(shí),有緩存。而處理靜態(tài)文件時(shí),沒有緩存。
簡圖:
beego----動(dòng)態(tài)文件----緩存-----文件系統(tǒng)
beego----靜態(tài)文件-------------文件系統(tǒng)
處理靜態(tài)文件時(shí),是直接使用文件系統(tǒng)。一般的文件系統(tǒng)的并發(fā)量當(dāng)然很低。
這就是beego的靜態(tài)文件處理性能低下的原因。
所以在進(jìn)行網(wǎng)站部署時(shí),需要將相應(yīng)的靜態(tài)文件,放置到nginx上進(jìn)行處理(相同的文件,nginx的靜態(tài)文件處理可以達(dá)到每秒1.5W次響應(yīng)。
beego與nginx通過反向代理連接。這樣才能最大限度地保證網(wǎng)站性能。
以上這篇淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- golang實(shí)現(xiàn)http服務(wù)器處理靜態(tài)文件示例
- Django 添加靜態(tài)文件的兩種實(shí)現(xiàn)方法(必看篇)
- 完美解決beego 根目錄不能訪問靜態(tài)文件的問題
- python django 訪問靜態(tài)文件出現(xiàn)404或500錯(cuò)誤
- 解析Go 標(biāo)準(zhǔn)庫 http.FileServer 實(shí)現(xiàn)靜態(tài)文件服務(wù)