1

我正在开发 Rails 应用程序,但我对所看到的内容感到困惑。我是新手,所以我可能会误解这些信息。当我运行一个 web 进程时,我得到了很好的结果。但是当我启动网络进程时,我没有得到我期望的结果。我正在尝试计算我需要在生产中运行多少,以便确定我的成本。

基于 New Relic,我在一个 Heroku Dyno 上以每分钟 3000 个请求(或每秒约 50 个请求)的速度每个请求的响应时间为 40-60 MS。一切运行良好,甚至没有推送 Web 进程。Blitz 上的一些响应在 1 秒时超时,但我希望是因为我正在尽可能多地通过一个 Dyno。

现在我尝试启动 Dyno's。先到 10,再到 50。我再次用 Blitz 冲,得到和上面一样的结果。运行 50 台测功机时,我用 250 个并发用户对网站进行闪电战,我得到的响应时间为 2 或 3 秒。New Relic 正在读取与一台测功机相同的流量,每秒 3000 个请求,请求时间为 60MS。Blitz 的响应时间为 3 秒,最高速度为 50 到 60 rps。

在日志中,我可以看到活动在不同的 Web 进程之间很好地分开。我只是针对主页进行测试,而不是访问任何外部服务或数据库调用。我没有使用缓存。

我不明白为什么单个 Web 进程每秒可以轻松处理多达 60 个请求(每次 Blitz),但是当增加到 10 甚至 50 个 Web 进程时,我没有获得任何额外的性能。我做了好几次闪电战来增加并发用户。

有人对正在发生的事情有任何想法吗?

4

1 回答 1

1

我最终从我的应用程序中删除了应用程序服务器 Unicorn 并将其重新添加。现在,我在一台测功机上每秒获得 225 次点击,同时有 250 个并发用户。运行多个 Dyno 似乎也可以正常工作。一定是设置应用服务器时出错。不过,从来没有追查过确切的错误。

于 2012-12-18T17:56:58.620 回答