【问题标题】:Advice on number of dynos关于测功机数量的建议
【发布时间】:2012-09-10 07:10:46
【问题描述】:

我是 Heroku 的新手,想知道如何猜测 RoR 应用可能需要的测功机数量(需要给客户一些数字)。

该应用已在免费的 1 dyno 上运行。以下是有关该应用的一些基本信息:

  • 应用主要是数据库读取,写入很少
  • 可能是繁重的数据库负载,查询涉及距离计算(从经纬度,使用 gmaps4rails)
  • 从使用 WAPT(评估版)的一些基本测试来看,典型的搜索请求似乎需要一分钟。约 1.3 秒,平均~2s,最大。 4-5秒
  • 再次通过 WAPT 测试,最多 20 个并发用户并观察 Heroku 日志,我似乎没有看到任何排队的请求
  • 其他请求主要是静态资产

我如何粗略了解处理 X 个并发用户所需的测功机数量,或者单个测功机可以处理多少并发用户?

【问题讨论】:

  • 嗯,您是否尝试过实际对您的设置进行负载测试?加载一个测功机,看看它什么时候坏了。再启动一个,重复。
  • 是的,正如我所提到的,我使用称为 WAPT 的工具来捕获用户会话,然后模拟最多 20 个用户(这是 eval 版本给我的最大值)。最多 20 个用户,1 dyno 似乎很好。我想我必须找到其他方法/工具来模拟更高的负载。
  • 哦,抱歉,我不熟悉这个工具。您可以尝试在任意多个线程中自己重播日志。
  • 将 Blitz 插件与 heroku 一起使用。它免费允许 250 个当前请求。作为 Heroku 插件,它很容易使用。

标签: ruby-on-rails heroku


【解决方案1】:

更新:Heroku 更改了他们的 dyno 定价协议https://www.heroku.com/pricing,因此这些信息可能不再正确。

根据这篇文章http://neilmiddleton-eu.herokuapp.com/getting-more-from-your-heroku-dynos/,如果你使用Unicorn,1个dyno每天可以处理100万个请求(每个请求100ms)。因此,如果您在 S3 中托管所有媒体,1 个页面视图需要 3 个请求(1 个 html、1 个管道式 css、1 个管道式 javascript),1 个 dyno 每天可以处理大约 300.000 个页面视图,或每秒 80 个页面视图独角兽。

假设 1 个用户将在 5 秒内查看 1 个页面,并且您的应用程序可以设法在 300 毫秒内响应,从技术上讲,您将有大约 400 个并发用户和 1 个测功机。

但实际上我们的应用程序(相当繁重),1 dyno 只能接受其中的 1/10,大约 50 个并发用户。

希望对您有所帮助!

【讨论】:

  • 当您说 1 dyno 时,您实际上是在谈论 1 dyno(您获得的免费 dyno)还是 1 个额外的 dyno?只有 1 个测功机,测功机会在 1 小时不活动后关闭,然后需要在第一个请求时启动。
  • 正确使用新的遗物经常检查站点,您不必担心关机。此示例站点仅使用 1 个 dyno(免费),并且可以 24 小时运行Planing poker
  • 彪马怎么样?由于 Heroku 建议现在使用 puma,您对今天的 Heorku 1 dyno 上的“并发用户请求数”有任何分析吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多