ale*_*lex 12 ruby rack ruby-on-rails heroku newrelic
环境:
Ruby:2.1.2
Rails:4.1.4
Heroku的
在我们在Heroku上托管的rails应用程序中,有时请求需要很长时间才能执行.它只有1%或更少,但我们无法弄清楚它发生了什么.
我们安装了newrelic代理,它说它不是请求排队,它是占用所有时间执行的事务本身.
但是,事务跟踪显示如下:

(同样的要求大多数时间只需要100毫秒执行)
据我所知,在调用控制器之前,时间正在消耗.它消耗了
Rack::MethodOverride#call
Run Code Online (Sandbox Code Playgroud)
这就是我们无法理解的.
此外,大多数时候(甚至总是,我们不确定)这种情况发生在移动设备发送的POST请求上.这可能与缓慢的连接有关吗?(虽然POST-payload非常小).
有没有人经历过这个?关于如何继续探索这个问题的任何建议表示赞赏.
提前致谢!
小智 7
由于Ruby代理开始在版本3.9.0.229中使用中间件,我们已经看到这个问题出现在一些用户身上.更长时间的一个可能原因是Rack :: MethodOverride需要检查POST上的请求体,以确定POST参数是否包含方法覆盖.它调用Rack :: Request#POST,最终触发读取整个请求体的读取.
这可能就是为什么你会发现在这个中间件上花费的时间比预期的多.更深入地了解POST主体如何与中间件所花费的时间相关可能是一个富有成效的调查途径.
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |