淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題
今天使用ab(apacheBench)測試了一下beego的性能。
3Kbytes動態(tài)文件,在i3上可以達到每秒1W次響應(yīng)的性能。
但是在測試靜態(tài)文件時,beego出現(xiàn)了問題。
ab測試參數(shù):100次請求,并發(fā)數(shù)5。
問題表現(xiàn):70%的請求直接失敗,連接斷開。
按道理來說,一個web server框架,靜態(tài)文件的性能,應(yīng)該是高于動態(tài)文件性能的。
在動態(tài)文件性能達到1W/s的情況下,沒理由靜態(tài)文件性能這么低下。
然后查看了一下beego的源代碼。發(fā)現(xiàn)beego在處理動態(tài)文件請求時,有緩存。而處理靜態(tài)文件時,沒有緩存。
簡圖:
beego----動態(tài)文件----緩存-----文件系統(tǒng)
beego----靜態(tài)文件-------------文件系統(tǒng)
處理靜態(tài)文件時,是直接使用文件系統(tǒng)。一般的文件系統(tǒng)的并發(fā)量當(dāng)然很低。
這就是beego的靜態(tài)文件處理性能低下的原因。
所以在進行網(wǎng)站部署時,需要將相應(yīng)的靜態(tài)文件,放置到nginx上進行處理(相同的文件,nginx的靜態(tài)文件處理可以達到每秒1.5W次響應(yīng)。
beego與nginx通過反向代理連接。這樣才能最大限度地保證網(wǎng)站性能。
以上這篇淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
go mutex互斥鎖使用Lock和Unlock方法占有釋放資源
Go號稱是為了高并發(fā)而生的,在高并發(fā)場景下,勢必會涉及到對公共資源的競爭,當(dāng)對應(yīng)場景發(fā)生時,我們經(jīng)常會使用 mutex 的 Lock() 和 Unlock() 方法來占有或釋放資源,雖然調(diào)用簡單,但 mutex 的內(nèi)部卻涉及挺多的,本文來好好研究一下2023-09-09
Go緩沖channel和非緩沖channel的區(qū)別說明
這篇文章主要介紹了Go緩沖channel和非緩沖channel的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Golang AGScheduler動態(tài)持久化任務(wù)調(diào)度的強大庫使用實例
這篇文章主要為大家介紹了Golang AGScheduler動態(tài)持久化任務(wù)調(diào)度的強大庫使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
Golang?IOT中的數(shù)據(jù)序列化與解析過程
這篇文章主要介紹了Golang?IOT中的數(shù)據(jù)序列化與解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05

