浅谈beego默认处理静态文件性能低下的问题

 更新时间:2017年06月17日 09:10:17   投稿:jingxian  
下面小编就为大家带来一篇浅谈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默认处理静态文件性能低下的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • golang网络socket粘包问题的解决方法

    golang网络socket粘包问题的解决方法

    这篇文章主要介绍了golang网络socket粘包问题的解决方法,简单讲述了socket粘包的定义并结合实例形式分析了Go语言解决粘包问题的方法,需要的朋友可以参考下
    2016-07-07
  • go语言在请求http时加入自定义http header的方法

    go语言在请求http时加入自定义http header的方法

    这篇文章主要介绍了go语言在请求http时加入自定义http header的方法,实例分析了Go语言http请求的原理与操作技巧,需要的朋友可以参考下
    2015-03-03
  • golang time包做时间转换操作

    golang time包做时间转换操作

    这篇文章主要介绍了golang time包做时间转换操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go语言中通过Lua脚本操作Redis的方法

    Go语言中通过Lua脚本操作Redis的方法

    这篇文章主要给大家介绍了关于Go语言中通过Lua脚本操作Redis的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-01-01
  • 使用GO语言实现Mysql数据库CURD的简单示例

    使用GO语言实现Mysql数据库CURD的简单示例

    本文主要介绍了使用GO语言实现Mysql数据库CURD的简单示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Go并发控制WaitGroup的使用场景分析

    Go并发控制WaitGroup的使用场景分析

    WaitGroup,可理解为Wait-Goroutine-Group,即等待一组goroutine结束,本文通过具体场景结合实际例子给大家介绍使用WaitGroup控制的实现方法,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • 解决golang处理http response碰到的问题和需要注意的点

    解决golang处理http response碰到的问题和需要注意的点

    这篇文章主要介绍了解决golang处理http response碰到的问题和需要注意的点,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go语言实现类似c++中的多态功能实例

    Go语言实现类似c++中的多态功能实例

    Go本身不具有多态的特性,不能够像Java、C++那样编写多态类、多态方法。但是,使用Go可以编写具有多态功能的类绑定的方法。下面来一起看看吧
    2016-09-09
  • golang三元表达式的使用方法

    golang三元表达式的使用方法

    这篇文章主要介绍了golang三元表达式的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解Golang 中的并发限制与超时控制

    详解Golang 中的并发限制与超时控制

    这篇文章主要介绍了详解Golang 中的并发限制与超时控制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论