我正在开发 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 进程时,我没有获得任何额外的性能。我做了好几次闪电战来增加并发用户。
有人对正在发生的事情有任何想法吗?