Я искал несколько дней, но не нашел подходящих ответов на этот вопрос.
В моем приложении Rails 4.1, размещенном на Heroku, при увеличении нагрузки некоторые запросы 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.