我在 Heroku 上托管了一个 Rails 3.2 应用程序,并且每天在 Rails 应用程序中出现 2-3 次超时。这些不是H12 请求超时,而是发生在 Rails 堆栈中某处的超时。因此,它们实际上会在站点上生成异常并出现在我的 Airbrake 日志中。
超时发生的地方似乎是完全随机的;有时它在像 Formtastic 这样的 gem 中,或者在 HAML 视图中,或者在 ActiveRecord 代码中。您可以在此处查看一些回溯的示例:https ://gist.github.com/dpmccabe/5238273
该站点没有获得太多流量并且在两个测功机上运行良好(尽管由于 Adept Scale 附加组件它们会自动扩展)。HTTP_X_HEROKU_QUEUE_WAIT_TIME 标头通常较低或为零,因此我认为这不是路由问题。我什至尝试从 Thin 切换到 Unicorn,但没有任何效果(我的 unicorn.rb 显示在上面的要点中)。
这些超时异常似乎在整个应用程序中随机发生的事实并没有给我太多继续。我确实有 New Relic,但我不确定如何调试它。有任何想法吗?