【发布时间】:2015-12-10 13:19:38
【问题描述】:
我在 free Dyno 上运行一个基于 NodeJS 的应用程序,连接到 mongohq-MongoDB。我想将它迁移到使用爱好 Dyno,这样做的动机不仅是避免睡眠时间,而且是为了实现更高的 HTTP 流量吞吐量。
阅读 Scaling 文档和 Procfile 文章让我对如何在 Heroku 上进行缩放感到困惑。
在Procfile 文章中,据说web 进程类型是唯一将从Heroku routing-mesh 接收HTTP 流量的进程。
所以我的问题是:
- 当已经有一个 hobby Dyno 运行时,执行“heroku ps:scale web+2”将导致在同一个 Dyno 上拥有 +2 Web 进程或添加两个 hobby em> Dynos(总共三个爱好 Dynos)?
- 总共三个爱好 Dynos 意味着 3 个 Web 进程和 27 个非 Web 进程可用?
- 在this 的回答中,建议使用cluster 模块来fork 线程来处理HTTP 请求,如何确定应该创建的worker 数量(在
// fork worker processes循环)? - 我应该如何决定何时水平扩展我的应用程序(添加更多相同类型的 Dynos)或垂直扩展(更强大的 Dynos,如标准 1X/2X)
- 应触发水平缩放以处理更高数量的请求?
- 应触发垂直刻度以处理较重的处理(需要更多的计算资源来响应相应的请求?)
注意,
在this 答案的Scaling 部分中,关于上述问题#1,Dynos 的结果仍然不清楚。
请考虑到应用程序优化(例如查找/删除瓶颈等)超出了此问题的范围,因为它的目标是更好地了解 Heroku 平台上的资源利用情况。
【问题讨论】:
标签: heroku deployment architecture scalability