运行多个Web进程的性能

时间:2012-11-02 19:55:15

标签: heroku

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

基于New Relic我在一个Heroku Dyno上的响应时间为每次请求40-60 MS,每分钟3000个请求(或每秒约50个请求)。事情进展顺利,网络流程甚至没有被推动。一些回应在闪电战时间为1秒,但我希望因为我正在通过一个Dyno尽可能多地推动。

现在我尝试启动Dyno。首先是10点到50点。我再次冲向Blitz并得到与上面相同的结果。随着50个dynos运行我用250个并发用户突击显示该网站,我得到的响应时间为2或3秒。 New Relic读取与一个dyno相同的流量,每秒3000个请求,60MS请求时间。 Blitz看到3秒的响应时间,最多可达到50到60 rps。

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

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

任何人对发生的事情都有任何想法?

1 个答案:

答案 0 :(得分:0)

我最终从我的应用程序中移除了应用服务器Unicorn,并再次将其添加回来。现在我每秒获得225次点击,一个dyno上有250个并发用户。运行多个Dyno似乎也可以正常工作。设置App Server时一定是错误的。从来没有追踪确切的错误。