淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題
今天使用ab(apacheBench)測(cè)試了一下beego的性能。
3Kbytes動(dòng)態(tài)文件,在i3上可以達(dá)到每秒1W次響應(yīng)的性能。
但是在測(cè)試靜態(tài)文件時(shí),beego出現(xiàn)了問題。
ab測(cè)試參數(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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
go mutex互斥鎖使用Lock和Unlock方法占有釋放資源
Go號(hào)稱是為了高并發(fā)而生的,在高并發(fā)場(chǎng)景下,勢(shì)必會(huì)涉及到對(duì)公共資源的競(jìng)爭,當(dāng)對(duì)應(yīng)場(chǎng)景發(fā)生時(shí),我們經(jīng)常會(huì)使用 mutex 的 Lock() 和 Unlock() 方法來占有或釋放資源,雖然調(diào)用簡單,但 mutex 的內(nèi)部卻涉及挺多的,本文來好好研究一下2023-09-09
Go緩沖channel和非緩沖channel的區(qū)別說明
這篇文章主要介紹了Go緩沖channel和非緩沖channel的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
go實(shí)現(xiàn)for range迭代時(shí)修改值的操作
這篇文章主要介紹了go實(shí)現(xiàn)for range迭代時(shí)修改值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Golang AGScheduler動(dòng)態(tài)持久化任務(wù)調(diào)度的強(qiáng)大庫使用實(shí)例
這篇文章主要為大家介紹了Golang AGScheduler動(dòng)態(tài)持久化任務(wù)調(diào)度的強(qiáng)大庫使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
從Context到go設(shè)計(jì)理念輕松上手教程
這篇文章主要為大家介紹了從Context到go設(shè)計(jì)理念輕松上手教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Golang?IOT中的數(shù)據(jù)序列化與解析過程
這篇文章主要介紹了Golang?IOT中的數(shù)據(jù)序列化與解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05

