Heroku - 旋转起来
Posted
技术标签:
【中文标题】Heroku - 旋转起来【英文标题】:Heroku - Spin Up 【发布时间】:2011-07-13 18:54:18 【问题描述】:我有一个部署到 Heroku 的站点。这是一个低流量的网站,所以如果几个小时没人去它然后去它,加载大约需要 5-10 秒。对该站点上其他页面的任何其他请求都可以快速加载。如果我完全退出网站并在几分钟后回来查看,它也会很快恢复。
只有在闲置几个小时后,启动时间才会明显。 还有其他人有这个问题吗?如果是这样,您是如何解决的。
关于这个话题,Google App Engine 也会发生同样的事情吗?我目前只是在尝试这些应用托管平台,所以我对技术/语言没有任何偏好。
【问题讨论】:
App Engine 也有类似的问题。新的(1.4.0)“热身请求”功能和“始终开启”实例在一定程度上缓解了它们。 这真是两个问题。 【参考方案1】:如果你不想为 Pingdom 付费,你可以试试开源替代品:Pinger
https://github.com/austinthecoder/pinger
【讨论】:
【参考方案2】:据我了解,Heroku 公开了这种行为。
对于免费站点托管,一个 heroku 'Dyno' 专用于您的站点,如果 dyno 在一段时间内不活动,则资源将被重定向到其他地方,当您在此时间之后尝试访问该站点时,系统必须去请求 Dyno 回来。
您可以通过支付额外的测功机费用来防止这种情况发生,这些测功机将与您的网站保持一致,或者您可以使用自动脚本定期访问该网站。
【讨论】:
【参考方案3】:“解决”此问题的最快方法是确保您的网站始终正常运行。设置一个 pingdom 帐户 (http://www.pingdom.com/) 每隔几分钟就会对您的网站进行 ping 操作,以使其保持活力。
我有一个特殊的路由myapp.com/keep_alive
,除了在没有缓存的情况下命中rails堆栈之外什么都不做。
希望这会有所帮助!
【讨论】:
你如何'在没有缓存的情况下点击 rails 堆栈'? heroku 上的缓存使用 varnish,因此请确保您没有设置任何与缓存相关的标头。如果它是一个简单的方法,只呈现一个视图,你会没事的。【参考方案4】:您是否碰巧使用“免费计划”托管它,即。只有 1 个测功机?
如果是这样,您遇到的可能是Dyno Idling。您可以增加测功机的数量,以便您的应用“始终在线”
【讨论】:
【参考方案5】:减少此时间的最佳方法是尽量减少 slug 的大小。这包括删除任何 PSD 或 AI 图像资产、删除 PDF 和最小化您的 gem 集等步骤。有关详细信息,请参阅:http://devcenter.heroku.com/articles/slug-size。作为参考,我的应用程序通常可以在大约一秒钟内启动。
【讨论】:
以上是关于Heroku - 旋转起来的主要内容,如果未能解决你的问题,请参考以下文章
MiniFly V1.1开源四轴驱动代码分析八:旋转矩阵控制分配矩阵等分析介绍
MiniFly V1.1开源四轴驱动代码分析八:旋转矩阵控制分配矩阵等分析介绍