Heroku App启动超时

Wil*_*amf 5 performance ruby-on-rails

我有一个相当大的,2.3升级到Rails 3应用程序,这足够胖它没有通过Heroku的60秒启动门,因此它崩溃了.我已经做了很多工作来最小化Gems和初始化器中的加载时间,但是有一些随机过程是燃烧时间,我不确定它是什么.我可以用另一双眼睛.

这是带有config.ru,application.rb和environment.rb以及Gemfile的GIST.

https://gist.github.com/2026140

任何想法将不胜感激.

Wil*_*amf 7

至少在我的情况下,这是两件事:1)很多宝石,2)Mongo需要很长时间才能初始化(负担很重的数据库).

为了修复宝石,在我的本地开发人员上,我修补了Bundler Kernel#require语句,这样我就可以看到哪些是最长的加载.然后,我试图删除它们.除此之外,我将它们设置为:require => false并在需要的地方手动需要它们.

其次,我修改了Mongoid,以便在应用程序启动时不会尝试连接到数据库.这有助于显着降低启动时间(超过10秒).

  • 最终,我们必须在前面编写一个代理绑定到heroku端口的代理..然后,我们启动应用程序. (3认同)

Pet*_*ing 5

Heroku的启动超时也让我感到困惑.我阅读了几篇关于如何解决这个问题的博客文章,并最终将一些解决方案自动化为一个宝石.

为了减少部署时的启动时间,您可以修剪启动时加载的gem(这并不意味着您必须从应用程序中修剪它们,只需启动时间).

gem_bench评估启动时可能不需要哪些gem .

我有一个约250个宝石的应用程序,并能够添加:require => false到其中约60个,具有戏剧性的效果.

https://github.com/acquaintable/gem_bench

免责声明:我是这个开源ruby gem的作者.我写了宝石来帮助自己解决这个确切的问题:Heroku上的60秒超时.