ruby on rails - apartment - ActionDispatch:: Routing:: RouteSet#call Rails 4.1 realmente lento
rails and ruby (2)
He buscado días pero no puedo encontrar ninguna respuesta relevante a esta pregunta.
En mi aplicación Rails 4.1 alojada en Heroku, cuando la carga aumenta, algunas solicitudes PUT se vuelven REALMENTE lentas. El más lento hoy fue de 53 segundos. Todo sin la base de datos (MongoDB) registrando cualquier consulta lenta. Normalmente esta solicitud tarda 0.3ms tan rápido. La solicitud es lenta sin importar cuál sea la carga útil.
Al instalar New Relic, arrojó algo más de luz sobre la situación, pero aún no sé dónde solucionar este problema.
El código en el controlador es rápido, pero según New Relic, lo que es lento es ActionDispatch :: Routing :: RouteSet # call
Aquí hay un volcado de lo que reporta 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%
Alguna otra información que podría ayudar o tal vez podría tener algo que ver con esto. Tengo un alias para las rutas, pero no puedo ver por qué eso debería importar.
namespace :plugin do
resources :fetchables, path: :minables
end
Cualquier idea sobre lo que podría estar pasando y lo que podría hacer para solucionarlo sería muy apreciada.
Actualización Por lo que parece que esto está relacionado con la memoria. Cuando actualizamos a Performance Dynos, dejamos de ver estos errores. Pero esto es algo que parece estar seriamente mal configurado en Heroku.
La desaceleración es un indicador de que es específico de Heroku. Probablemente la razón por la que viste desaparecer el problema al actualizar a Performance Dynos.
Podría usar rack-mini-profiler para verificar dónde está el verdadero problema.