Rails 帮忙分析一下网站的 慢查询,该怎么优化呢

tsinghan · 2015年10月19日 · 最后由 xiaoronglv 回复于 2015年10月20日 · 2348 次阅读

server 用的是 Passenger, 上面是慢查询列表,发现 GC 占了大多数,这让我想起了 https://ruby-china.org/topics/12033 蝉游记的将 GC 延迟到用户请求完成 的处理,大家帮忙分析一下,有什么方法该优化这些问题

换成其它的 试试

900ms 难道不是你的应用功能功能耗费的?

看日志,看那里耗费多了

装一个 Newrelic,每一步耗费的时间一清二楚。

#2 楼 @huacnlee 恩,我用的这个监控工具叫 unionstationapp, 我点击进去看了一下这次查询确实有个 sql 的耗时多,但列表中给出的 Allocated objects 为 GC,我以为和这方面有关。

#1 楼 @mystery #3 楼 @xiaoronglv 目前用的这个 unionstationapp 工具,Newrelic 收费太贵了

通常先看 sql 和 view render 的时间

除了 sql 和 view render 的消耗,这几个参数是什么意思?

可以试试 oneapm 这个和 Newrelic 差不多 可以免费用一段时间 rails 应用的话一般是 sql 和页面的渲染比较耗时

如果可以的话,贴出这几个 controller 的代码来看看,GC 耗时就一个原因,对象分配太多。如果不方便贴代码,可以用 stackprof 这个工具来调一调,输出的结果会告诉你到底哪里分配了太多的对象,导致 GC 频繁执行。

#10 楼 @markgeek 好的,我按照这个思路 试试看 多谢

#9 楼 @ltl3884 恩 Newrelic 也可以用,只是只能查看一天的数据,还是从 sql 和 render view 上 看看那里有问题

要看具体代码和 SQL 的耗时阿。

#13 楼 @rei 恩恩,正在查看里面的具体的 sql 和 view 的耗时操作

Newrelic 有免费版,仅保存一周的数据,不过够你用的了。

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