Я искал дни, но не могу найти подходящих ответов на этот вопрос.
В моем приложении Rails 4.1, размещенном на Heroku, когда загрузка увеличивается, некоторые запросы PUT становятся ДЕЙСТВИТЕЛЬНО медленными. Самый медленный был сегодня 53 секунды. Все без базы данных (MongoDB) регистрируют любые медленные запросы. Обычно этот запрос занимает 0,3 мс так быстро. Запрос медленный, независимо от того, что представляет собой полезная нагрузка.
После установки New Relic он пролил еще немного света на ситуацию, но я до сих пор не знаю, где исправить эту проблему.
Код в контроллере работает быстро, но согласно New 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
Любые идеи о том, что может происходить и что я могу сделать, чтобы исправить это, будут очень признательны.
Обновление Похоже, что это связано с памятью. Когда мы обновились до Performance Dynos, мы перестали видеть эти ошибки. Но это очень серьезно настроено в Heroku.