如何在Heroku上使用自动缩放网络dynos?

Chr*_*ini 21 scalability heroku ruby-on-rails-3

使用Heroku,当需要时,一个AUTO如何在web dynos方面扩大规模?假设我们每2-3分钟就会吸引100名并发用户.如果我们的应用程序卡在5-6网络dynos上.我们搞砸了.

其次,我无法在24小时内监控流量,以确定是否需要向上或向下扩展.

到目前为止,我已经看过http://hirefireapp.com/http://www.heroscale.com/ 有关这两个的任何建议吗?

Nei*_*ton 25

heroku本身不这样做的原因是它是一个非常复杂的问题需要解决.

例如,想象一下上面的场景,你突然开始看到一个队列形成并想要使dynos斜坡上升.你又开了十个.然而,这不是一个dyno问题,你的数据库运行缓慢,所以现在你有更多的dynos等待数据库,现在有更多的需求.

虽然那里有自动缩放产品,但我没有尝试过任何一种产品,并且完全相信目前只有一个人可以在缩放时做出正确的调用.你的旅费可能会改变.

我在过去发现,将资源设置为预期的使用级别(可能高于当前使用率)往往效果最好,排除大量流量涌入(例如黑客新闻等)


Mic*_*jen 25

我建立了HireFire并希望分享一些最新信息:

HireFire能够根据各种指标自动扩展您的网络和工作人员动态.我们目前支持以下指标来源/类型:

  • HireFire(响应时间)| Web Dynos
  • HireFire(工作队列)| 工人Dynos
  • Heroku Logplex(响应时间)| Web Dynos
  • Heroku Logplex(每分钟请求数)| Web Dynos
  • Heroku Logplex(Dyno CPU负载)| Web Dynos
  • NewRelic(Apdex)| Web Dynos
  • NewRelic(响应时间)| Web Dynos
  • NewRelic(每分钟请求数)| Web Dynos

HireFire(响应时间)执行基本HTTP请求以测量响应时间.

HireFire(作业队列)允许您根据队列大小自动缩放工作人员动态.你将在你的终端设置一个非常简单的端点(我们有一个RubyGem,但它可以用任何语言很容易地用任何语言完成).我们会定期执行检查并相应地扩展您的工作人员dyno形成.

New Relic允许您与New Relic集成.它会定期获取最新的度量标准数据,例如平均响应时间,每分钟请求数和Apdex,以确定您的Web dyno形成.

Heroku Logplex是我们的最新成员.这种方法依赖于您的(和Heroku的)日志.您的日志将从Heroku的Logplex流式传输到HireFire的Logdrain,在那里它将被解析为度量数据.这允许您以比HireFire/ResponseTime更可靠的方式自动缩放Web dynos,因为它直接从Heroku的路由器抓取数据.此方法也不需要任何外部依赖项,例如New Relic.

如果您有任何疑问,请联系我们!


Jus*_*son 12

我在Rails社区的很多朋友都使用Rails Autoscale在Heroku上进行自动缩放.以下是它的工作原理:

Rails Autoscale提供了一个小型的Rack中间件,可捕获此时间并定期将其报告给Rails Autoscale服务.这类似于New Relic的工作尺寸的一小部分.

Heroku本身提供的自动缩放仅在其性能层(每个dyno每月250美元起)上可用.如果您正在使用业余爱好或标准计划,则需要找到第三方解决方案.

我喜欢Rails Autoscale的一件事是它根据请求排队自动上下调整你的应用程序.

这是一个很好的功能,特别是为了安心.如果你正在睡觉,并且得到了交通高峰,你就无法手动调整动态数量.拥有一个可以自动扩展的工具是很好的保险.


gen*_*abs 11

Heroku刚刚推出了一个新的插件,可以进行自动缩放.网络dynos现在只是.

查看此主题/sf/answers/985304701/