我搜索了好几天,但找不到任何与此问题相关的答案。
在Heroku上托管的Rails4.1应用程序中,当负载增加时,一些Put请求会变得非常慢。今天最慢的是53秒。所有这些都没有数据库(mongodb)注册任何慢查询。通常这个请求需要0.3毫秒,所以速度非常快。无论有效负载是什么,请求都很慢。
在安装新的文物后,它对情况有了更多的了解,但我仍然不知道该如何解决这个问题。
控制器中的代码很快,但是根据新的relic,速度较慢的是actionDispatch::Routing::RouteSet Call
这里有一个新遗迹报告的垃圾堆:

Slowest components                      Count   Duration    %
ActionDispatch::Routing::RouteSet#call  1   53,000 ms   100%
Plugin::FetchablesController#update     1   38 ms       0%
Rails::Rack::Logger#call                1   1 ms        0%
ActionDispatch::Cookies#call            1   1 ms        0%
ActiveSupport::Cache::Strategy::LocalCache::Middleware#call 1   0 ms    0%
Rack::Runtime#call                      1   0 ms        0%
Total                                       53,000 ms   100%

其他一些可能有帮助或可能与此有关的信息。我有一个路线的别名,但我不明白为什么这很重要。
namespace :plugin do
   resources :fetchables, path: :minables
end

任何关于可能发生的事情和我能做些什么来修复它的想法都将非常感谢。
更新
所以这似乎和记忆有关。当我们升级到性能Dynos时,我们已经不再看到这些错误。但这在Heroku似乎是严重配置错误的事情。

最佳答案

减速是一个特定于Heroku的指标。可能是升级到性能Dynos后问题消失的原因。

关于ruby-on-rails - ActionDispatch::Routing::RouteSet#调用Rails 4.1真的很慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28351527/

10-09 21:22