浅谈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默认处理静态文件性能低下的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 完美解决beego 根目录不能访问静态文件的问题

    beego可算是Go框架里面文档最多的了.学起来比较容易.但是框架自身的局限性却带了不小的问题. 最近我在处理flash跨域问题上就遇到个活生生的例子: flash里面的as3访问外网时没啥问题.可是假如通过网页调取的情况下,flash访问的外网又与所在网页不是一个域的.就会产生跨域问题.打开浏览器,f12之后,看到的就是flash没有访问你的url,而是访问了这个url所在的域名根目录下的配置文件crossdomain.xml.该配置文件来设置跨域访问的权限. 这时候需要在你的域名根目录下放个

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

    今天使用ab(apacheBench)测试了一下beego的性能. 3Kbytes动态文件,在i3上可以达到每秒1W次响应的性能. 但是在测试静态文件时,beego出现了问题. ab测试参数:100次请求,并发数5. 问题表现:70%的请求直接失败,连接断开. 按道理来说,一个web server框架,静态文件的性能,应该是高于动态文件性能的. 在动态文件性能达到1W/s的情况下,没理由静态文件性能这么低下. 然后查看了一下beego的源代码.发现beego在处理动态文件请求时,有缓存.而处理静

  • 浅谈ASP.NET Core静态文件处理源码探究

    前言 静态文件(如 HTML.CSS.图像和 JavaScript)等是Web程序的重要组成部分.传统的ASP.NET项目一般都是部署在IIS上,IIS是一个功能非常强大的服务器平台,可以直接处理接收到的静态文件处理而不需要经过应用程序池处理,所以很多情况下对于静态文件的处理程序本身是无感知的.ASP.NET Core则不同,作为Server的Kestrel服务是宿主到程序上的,由宿主运行程序启动Server然后可以监听请求,所以通过程序我们直接可以处理静态文件相关.静态文件默认存储到项目的ww

  • 浅谈Java代理(jdk静态代理、动态代理和cglib动态代理)

    一.代理是Java常用的设计模式,代理类通过调用被代理类的相关方法,并对相关方法进行增强.加入一些非业务性代码,比如事务.日志.报警发邮件等操作. 二.jdk静态代理 1.业务接口 /** * 业务接口 * @author pc * */ public interface UserService { // 增加一个用户 public void addUser(); // 编辑账户 public void editUser(); } 2.业务实现类 /** * 业务实现类 * @author pc

  • 浅谈优化Django ORM中的性能问题

    Django是个好工具,使用的很广泛. 在应用比较小的时候,会觉得它很快,但是随着应用复杂和壮大,就显得没那么高效了.当你了解所用的Web框架一些内部机制之后,才能写成比较高效的代码. 怎么查问题 Web系统是个挺复杂的玩意,有时候有点无从下手哈.可以采用 自底向上 的顺序,从数据存储一直到数据展现,按照这个顺序一点一点查找性能问题. 数据库 (缺少索引/数据模型) 数据存储接口 (ORM/低效的查询) 展现/数据使用 (Views/报表等) Web应用的大部分问题都会跟 数据库 扯上关系.除非

  • 浅谈Golang是如何读取文件内容的(7种)

    本文旨在快速介绍Go标准库中读取文件的许多选项. 在Go中(就此而言,大多数底层语言和某些动态语言(如Node))返回字节流. 不将所有内容自动转换为字符串的好处是,其中之一是避免昂贵的字符串分配,这会增加GC压力. 为了使本文更加简单,我将使用string(arrayOfBytes)将bytes数组转换为字符串. 但是,在发布生产代码时,不应将其作为一般建议. 1.读取整个文件到内存中 首先,标准库提供了多种功能和实用程序来读取文件数据.我们将从os软件包中提供的基本情况开始.这意味着两个先决

  • 浅谈php fopen下载远程文件的函数

    如下所示: //下载附件 function get_file($url, $folder = "./") { set_time_limit (24 * 60 * 60); // 设置超时时间 $destination_folder = $folder . '/'; // 文件下载保存目录,默认为当前文件目录 if (!is_dir($destination_folder)) { // 判断目录是否存在 mkdirs($destination_folder); // 如果没有就建立目录

  • 浅谈Linux文件目录介绍及文件颜色区别

    本文主要介绍的是关于Linux文件目录介绍及文件颜色区别的相关内容,具体如下. 文件颜色代表含义 蓝色表示目录: 绿色表示可执行文件: 红色表示压缩文件: 浅蓝色表示链接文件: 白色表示其他文件: 黄色是设备文件,包括block, char, fifo. 常见目录解释 Linux各种发行版的目录结构基本一致,各个目录简单介绍如下: 目录 描述 / 根目录 /bin 做为基础系统所需要的最基础的命令就是放在这里.比如 ls.cp.mkdir等命令:功能和/usr/bin类似,这个目录中的文件都是可

  • 浅谈matplotlib默认字体设置探索

    控制默认字体的设置 根据官方文档https://matplotlib.org/tutorials/text/text_props.html#default-font可知: The base default font is controlled by a set of rcParams 默认字体是由一组rcParams控制的. rcParam usage 'font.family' List of either names of font or {'cursive', 'fantasy', 'mo

  • 浅谈Java安全编码之文件和共享目录的安全性

    目录 一.linux下的文件基本权限 二.linux文件的特殊权限 2.1.Set UID 和 Set GID 2.2.Sticky Bit 2.3.SUID/SGID/SBIT权限设置 三.文件隐藏属性 四.特殊文件 五.java中在共享目录中使用文件要注意的问题 六.安全目录 一.linux下的文件基本权限 chmod是linux下面的权限管理命令,我们可以通过chmod来对文件的权限进行修改. 普通文件的权限有三种,rwx分别是读,写和执行.再加上三个用户分组:owner,group,ot

  • 浅谈Redis高并发缓存架构性能优化实战

    目录 场景1: 中小型公司Redis缓存架构以及线上问题实战 场景2: 大厂线上大规模商品缓存数据冷热分离实战 场景3: 基于DCL机制解决热点缓存并发重建问题实战 场景4: 突发性热点缓存重建导致系统压力暴增 场景5: 解决大规模缓存击穿导致线上数据库压力暴增 场景6: 黑客工资导致缓存穿透线上数据库宕机 场景7: 大V直播带货导致线上商品系统崩溃原因分析 场景8: Redis分布式锁解决缓存与数据库双写不一致问题实战 场景9: 大促压力暴增导致分布式锁串行争用问题优化 场景10: 利用多级缓

随机推荐