3

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

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

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

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

4

1 回答 1

13

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

根据这篇文章http://neilmiddleton-eu.herokuapp.com/getting-more-from-your-heroku-dynos/,如果您使用 Unicorn,1 dyno 每天可以处理 100 万个请求(每个请求 100 毫秒)。因此,如果您在 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 个并发用户。

希望这对你有帮助!

于 2013-04-09T08:51:12.457 回答