为什么两个Heroku dynos只能处理一个请求?

时间:2017-02-27 16:22:07

标签: ruby-on-rails heroku server scaling

所以我运行了一个Heroku网络应用程序,我已经将我使用的Dynos数量升级到两个,以便在高峰时段处理更高的网络流量(我们目前有两个网络动态和一个工作人员dyno)。今天早上我在网站上进行了一些维护,并在我们的一个网页上运行了一个非常密集的脚本(它向Google的Maps API发送了2,500个地址查询请求)。运行脚本(运行一个网页)后,我尝试加载主页,发现它超时了。我的印象是,如果我有两个Dynos运行服务器将能够同时处理两个请求,但看起来可能不是这种情况。任何人都可以提供一些关于Heroku Dyno系统如何工作的其他细节吗?

1 个答案:

答案 0 :(得分:1)

这更多地取决于您使用的网络服务器...有这个问题,可能您没有更改网络服务器并使用Webrick,它随Rails一起提供,应该适用于开发环境。

Webrick没有并行请求...所以你有多少dynos并不重要,它只是不使用它并一次处理一个请求。

要使用你的dynos,你需要一个像Puma这样的多线程运行的网络服务器或者像Unicorn这样的多进程。

今天,Heroku建议运行Puma

Puma句柄即使只在一个dyno上运行也会有相似的要求...但显然更多的dynos(以及使用它们配置puma)会处理更多的并行请求。