公告 对所有已登录的用户开放 rack-mini-profiler 统计结果

huacnlee · 2016年01月26日 · 最后由 imwildcat 回复于 2016年02月22日 · 11248 次阅读

我们很早以前就在 Ruby China 的生产环境启用了 rack-mini-profiler 目的是为了让管理员可以随时关注线上应用响应时间。

但现在这个功能对所有已登录的用户都开放了!

目的

  • 让大家以后基于 Rails 编写应用程序的时候能有一个参考指标
  • 当你遇到访问 Ruby China 慢的时候,可以对比浏览器响应时间,和左上角的 rack-mini-profiler 统计时间,以确定是否是网络环境的问题

Ruby China 这几年不断的在优化改进,主要功能的页面响应时间大多都已经在 100ms 以内,有的甚至在 50ms 以内。

同时最近由于我们顺利的从 Mongoid 切换到了 ActiveRecord,用上了关系型数据库,这样一来可大家实际的项目场景更接近。


话说回来,最早的时候我也是有这个期望可以做一个 Rails 的项目,让它能实践各种 Ruby 社区的东西,已验证可行性,现在回头来看,这个目标已经达到了。

Ruby China 正在用那些我们常见到,又时常纠结的热门三方组件:

当然还有 Mongoid

并且 5 年来,Ruby China 一直在持续升级这些三方库,目前它们都基本已经到了最新的版本,也是证明 Rails,Gem 保持升级到新版本是可行的。


Rails 不慢,ActiveRecord 也不慢!Ruby China 的场景可以证明这个事情!


切换到 ActiveRecord 后,感觉速度更快了。 :plus1:

放在页脚会不会好点? :plus1:

必须点赞。

单个请求确实不错

:plus1:

:plus1:

BTW,提交回复的这个 ajax 刷新有问题了吗?我第一次提交发现没刷新上去,第二次提交说不能提交相同内容,刷新一下就显示上去了。有没有人遇到?

#19 楼 @realwol 搜索索引有个 Bug,我在查原因

23楼 已删除

尝试修复了一下,观察看看

👍

:plus1:

  • Grape API
  • Rails 占内存启动就 100M

刚开始看到左上角那个数字我还以为忘记在 production 关闭调试功能呢 😄

如方便的话,公布一下硬件配置,这样大家看到响应时间,能结合硬件配置,评估自己的应用。

有点高大上的感觉了

不知道楼主做了哪些优化? 很好奇怎么并行加载不同域的资源文件的? 之前: 之后:

那个:

//bi-collector.oneapm.com/static/js/bw-loader-411.4.5.js

脚本之前会阻塞页面,必须它加载完之后,其他的才能加载,改进之后,它和其他资源能够并行加载,好像没有阻塞其他资源的下载,不知道楼主怎么做到的?

33楼 已删除

:plus1:

#32 楼 @dc2000 没明白你的意思,你是说 Ruby China 的 Assets 下载有并行还是没有?

之前之后两个截图我没看明白,怎么弄出差别的?

@realwol 遇到和你一样的问题

#32 楼 @dc2000 Assets 下载本身是并行的,只是同一域名有数量限制。

#38 楼 @huacnlee
之前是指 26 号上午 10 点左右:http://www.webpagetest.org/result/160126_7K_3SM/ 之后是指 26 号下午 3 点左右:http://www.webpagetest.org/result/160126_EC_AAW/1/details/ 可以看到上面那个 10 点的图里面

//bi-collector.oneapm.com/static/js/bw-loader-411.4.5.js

在加载的时候会阻塞其他的资源下载,所以这个 js 脚本和其他资源不是并行下载的。 下面 3 点左右的图里面 这个 js 脚本是并行加载的。

:plus1:

:plus1:

感觉这个页面好危险的样子,没做限制?https://ruby-china.org/?pp=help

"Ruby China 這幾年不斷的在優化改進,主要功能的頁面響應時間大多都已經在 100ms 以內,有的甚至在 50ms 以內。"

印像中 Stack Exchange 也是這個速度。

:plus1:

这点并发。。。

👍🏽

👍 很有参考价值

存在安全问题,又关掉了

rack-mini-profiler 的用途是能直接找到线上的页面的相关性能信息,但是其中也有很多服务器内部的一些安全信息,比如说 session 和 cookies 等。在 ?pp=help 中的内存相关的分析,基本上会暴露 Rack session。

这些信息对开发者还是足够安全的。

再加装 flamegraph 后更可以直接可视化分析热点。

#56 楼 @huacnlee 因为不安全关掉,还是会拖慢生产环境的响应时间?

#59 楼 @huacnlee 能否告知 Ruby China 当前的服务器配置、UV、PV 吗?做个参考。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册