Heroku - 快速启动

15

我有一个部署在Heroku上的网站。这是一个低流量网站,因此如果几个小时没有访问,然后再访问它,需要大约5-10秒钟才能加载。对该站点的任何其他页面的请求都可以快速加载。如果我完全退出该网站,并在几分钟后重新检查,它也会迅速恢复。

只有当它闲置了几个小时后,才会注意到启动时间较长。是否有其他人遇到过这个问题?如果是,你是如何解决的。

另外,谈到这个话题,Google App Engine是否也会出现相同的情况?我目前只是尝试使用这些应用程序托管平台,因此对技术/语言没有任何偏好。


2
App Engine也有类似的问题。但是新近版本(1.4.0)的“预热请求”功能和“常开”实例在一定程度上缓解了这些问题。 - Ezra
这实际上是两个问题。 - Nick Johnson
5个回答

11

最快解决此问题的方法是确保您的网站始终可用。设置 Pingdom 帐户(http://www.pingdom.com/),它将每隔几分钟 ping 您的网站以保持活动状态。

我有一个特殊路由 myapp.com/keep_alive,除了不使用缓存之外,什么都不做,只是触发 Rails 栈。

希望这可以帮助您!


1
如何在不使用缓存的情况下运行Rails堆栈? - ryanprayogo
在Heroku上进行缓存使用Varnish,因此,请确保不设置任何与缓存相关的标头。如果只是简单渲染视图的方法,则不会有问题。 - jonnii

4

你是否正在使用免费计划进行托管,即仅使用1个dyno?

如果是这样,你所遇到的可能是Dyno闲置。您可以增加dynos的数量,以使您的应用程序“始终处于活动状态”。


2
据我所知,Heroku公开了这种行为。
对于免费的站点托管,一个Heroku“Dyno”专门用于您的网站。如果该Dyno在一段时间内处于非活动状态,则资源将被重定向到其他地方。当您在此时间之后尝试访问该站点时,系统必须重新请求Dyno。
您可以通过支付额外的Dyno来防止这种情况发生,这些Dyno将与您的站点保持连接,或者您可以使用自动化脚本定期访问该站点。

0

想要减少这个时间,你能做的最好的事情就是尽可能地减小你的“slug”大小。这包括删除任何PSD或AI图像资产,移除PDF文件和缩小你的gem设置。更多信息请参考:http://devcenter.heroku.com/articles/slug-size。作为参考,我的应用程序通常可以在一秒内启动。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接