17

何日も検索しましたが、この質問に関連する回答が見つかりません。

Heroku でホストされている私の Rails 4.1 アプリでは、負荷が上がると、一部の PUT リクエストが非常に遅くなります。今日の最も遅いものは53秒でした。データベース (MongoDB) が遅いクエリを登録する必要はありません。通常、このリクエストには 0.3 ミリ秒かかるため、非常に高速です。ペイロードが何であれ、リクエストは遅いです。

New Relic をインストールすると、状況がさらに明らかになりますが、この問題をどこで修正すればよいかはまだわかりません。

コントローラーのコードは高速ですが、New Relic によると、遅いのは ActionDispatch::Routing::RouteSet#call です

以下は、New Relic が報告する内容のダンプです。

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

何が起こっているのか、それを修正するために何ができるのかについてのアイデアは大歓迎です.

更新 これはメモリ関連のようです。Performance Dynos にアップグレードすると、これらのエラーは表示されなくなりました。しかし、これは Heroku での設定が非常に悪いようです。

4

2 に答える 2

2

スローダウンは、Heroku 固有であることを示しています。おそらく、Performance Dynos にアップグレードしたときに問題が解消された理由でしょう。

于 2015-07-09T14:15:06.563 に答える