如何在我的Rails应用程序中追踪性能瓶颈?

时间:2012-05-14 12:03:39

标签: ruby-on-rails performance

我想确定应用程序中滞后时间的位置。我想拼凑起来 为什么我的请求所花费的时间远远超过广告时间。我已经包含了一个例子 日志。在Views和ActiveRecord之间,时间只有150ms,但整个响应都是 花了1483ms。这不仅仅是在某个地方丢失了整整一秒 监测。

Started POST "/contacts" for 80.171.62.199 at 2012-05-14 09:51:33 +0000
Processing by ContactsController#create as HTML
  Parameters: {"developer_api_key"=>"foo", "user_api_key"=>"bar", "contact"=>{"name"=>"Cors Test"}}
  HTTP Logger Request ID: 4fb0d5a583098e0014000002
Completed 201 Created in 1483ms (Views: 133.2ms | ActiveRecord: 24.0ms)

我正在使用New Relic RPM来监控应用程序性能,这只能告诉我: ContactsController#index: 426ms。时间和代码仍有很多 下落不明。

对我来说,找出代码花费时间的最佳方法是什么?我应该投资吗? 在扩展New Relic RPM或使用像ruby-prof?

这样的东西

2 个答案:

答案 0 :(得分:1)

这是生产中的吗?如果是的话,是的,投资New Relic或者通过他们通常拥有的免费升级“东西”来试用它们。我猜你通常会持续一周。看看他们现在是否有任何此类交易。

另外,你有没有before_filters,api调用第三方服务,一些奇怪的初始化器,这是第一次在服务器重启后调用POST吗?

你有一个developer_api_key,它可能会在某处(本地可能)或第三方服务进行检查。

很多因素,但只有一秒钟。大多数标准应用程序在POST时都可以。除非它是一个新的Relic克隆,它只需要POSTS和POSTS,即你的面包和黄油。

另外,你有关于api密钥的索引吗?以防万一。

答案 1 :(得分:0)

New Relic是最好的工具:

http://newrelic.com/

我不是这里广告产品的粉丝,但我已经习惯了它,它确实有帮助。