淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題
今天使用ab(apacheBench)測試了一下beego的性能。
3Kbytes動(dòng)態(tài)文件,在i3上可以達(dá)到每秒1W次響應(yīng)的性能。
但是在測試靜態(tài)文件時(shí),beego出現(xiàn)了問題。
ab測試參數(shù):100次請求,并發(fā)數(shù)5。
問題表現(xiàn):70%的請求直接失敗,連接斷開。
按道理來說,一個(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)文件請求時(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)文章
golang 40行代碼實(shí)現(xiàn)通用協(xié)程池
golang協(xié)程機(jī)制很方便的解決了并發(fā)編程的問題,但是協(xié)程并不是沒有開銷的,所以也需要適當(dāng)限制一下數(shù)量。這篇文章主要介紹了golang 40行代碼實(shí)現(xiàn)通用協(xié)程池,需要的朋友可以參考下2018-08-08詳解Golang如何監(jiān)聽某個(gè)函數(shù)的開始執(zhí)行和執(zhí)行結(jié)束
這篇文章主要為大家詳細(xì)介紹了Golang如何監(jiān)聽某個(gè)函數(shù)的開始執(zhí)行和執(zhí)行結(jié)束,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-02-02詳解golang中make與new的異同點(diǎn)和用法
這篇文章將給大家介紹了go語言中函數(shù)new與make的使用和區(qū)別,關(guān)于go語言中new和make是內(nèi)建的兩個(gè)函數(shù),主要用來創(chuàng)建分配類型內(nèi)存,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-01-01Windows上安裝Go并配置環(huán)境變量(圖文步驟)
開始使用Go創(chuàng)建應(yīng)用程序之前,需要設(shè)置開發(fā)環(huán)境,本文主要介紹了Windows上安裝Go并配置環(huán)境變量,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Golang?基于flag庫實(shí)現(xiàn)一個(gè)簡單命令行工具
這篇文章主要介紹了Golang基于flag庫實(shí)現(xiàn)一個(gè)簡單命令行工具,Golang標(biāo)準(zhǔn)庫中的flag庫提供了解析命令行選項(xiàng)的能力,我們可以基于此來開發(fā)命令行工具,下文詳細(xì)介紹。需要的小伙伴可以參考一下2022-08-08