浅谈beego默认处理静态文件性能低下的问题
今天使用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通过反向代理连接。这样才能最大限度地保证网站性能。
以上这篇浅谈beego默认处理静态文件性能低下的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
go mutex互斥锁使用Lock和Unlock方法占有释放资源
Go号称是为了高并发而生的,在高并发场景下,势必会涉及到对公共资源的竞争,当对应场景发生时,我们经常会使用 mutex 的 Lock() 和 Unlock() 方法来占有或释放资源,虽然调用简单,但 mutex 的内部却涉及挺多的,本文来好好研究一下2023-09-09
Golang AGScheduler动态持久化任务调度的强大库使用实例
这篇文章主要为大家介绍了Golang AGScheduler动态持久化任务调度的强大库使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-10-10


最新评论