时间:2021-04-29 10:57:54 | 栏目:Golang | 点击:次
今天使用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通过反向代理连接。这样才能最大限度地保证网站性能。