无法弄清楚我的rails应用程序中导致性能瓶颈的原因

时间:2011-12-22 05:10:21

标签: ruby-on-rails ruby ruby-on-rails-3 performance profiling

根据我的heroku日志,我的rails应用程序平均在1700到2500毫秒之间提供请求(这是整个往返)。我使用新的遗物来描述我的应用程序,似乎大部分请求都没有花在我的数据库中,而是花在New Relic的“Web Transaction”部分。似乎“控制器”类别往往是请求中最慢的类别,其次是“数据库”类别中的“SQL - SELECT”段。

我不太确定在我的控制器中可能导致我的性能瓶颈的可能性,我也不认为我可以在不支付高级版本的情况下深入了解新的遗物。我最近为我的应用程序的外键添加了索引,尽管我认为这在数据库响应时间方面没有太大差别。

我知道这还不足以找出造成这些瓶颈的原因,但我甚至不知道从哪里开始或提供什么信息。如果人们可以告诉我诊断这些问题需要哪些信息,那么这对我有帮助。

2 个答案:

答案 0 :(得分:2)

New Relic for Ruby包含一个免费的独立开发者模式。在RAILS_ENV = development中运行时,New Relic gem会添加一条路径,显示每个请求的详细配置文件。几次点击你的应用后转到http://localhost:3000/newrelic

配置文件包括每个SQL查询以及代码组件的时间。您可以使用custom instrumentation将大块代码分解为单独计时的较小段(或单个方法)。此功能很像您在付费Pro版本中获得的事务跟踪,一个主要区别是您不希望在生产中运行免费开发模式。

(完全披露:我为NR工作。虽然没有多少人知道免费开发模式,所以我认为值得一提。)

您可能会使head.js之类的内容更快地加载Javascript,这会异步并行地加载您的JS文件。

答案 1 :(得分:0)

看看这张幻灯片:

http://www.slideshare.net/drhenner/optimize-the-obvious-7636674

可能还不够,但它经历了一些常见的错误。

挖一点钱,看一下这段视频:http://windycityrails.org/videos2011/#2

它更长,但有很多地方可以看。

另一方面。你使用CDN吗?