PM2 集群模式与节点集群性能

Posted

技术标签:

【中文标题】PM2 集群模式与节点集群性能【英文标题】:PM2 Cluster Mode vs. Node Cluster Performance 【发布时间】:2018-01-17 07:46:23 【问题描述】:

我了解PM2 Cluster Mode 使我们能够轻松地在单台机器上跨 CPU 进行扩展。它是否创建了它正在扩展的节点应用程序的多个实例?本质上,它与使用 nginx 之类的反向代理在不同端口上运行多个节点应用程序是一回事吗?

然后,Node Cluster 派生出一个子进程。与 PM2 集群模式相比,这种方法是否更有效,因为它运行单个节点应用程序并使用工作线程来处理传入请求?

【问题讨论】:

【参考方案1】:

他们基本上做同样的事情,PM2 将在后台使用 Node Cluster,这将使事情变得更容易,因为您不必以编程方式处理代码中的分叉,只需按原样运行即可。

请注意,集群模式不支持会话粘性,因此请确保您的应用是无状态的。

【讨论】:

我可能不得不对此进行测试,但我试图了解资源使用量是否会与 PM2 生成的分叉数量成正比。例如,如果应用程序的单个实例使用 4GB,那么在 PM2 中,每个额外的实例会再消耗 4GB,而在 Node Cluster 中则不会。 我刚刚发现 Node 中的 fork 与 POISIX 的 fork 非常不同,因为它实际上并没有克隆当前进程,但它确实启动了一个新的 V8 实例。来源:stackabuse.com/setting-up-a-node-js-cluster

以上是关于PM2 集群模式与节点集群性能的主要内容,如果未能解决你的问题,请参考以下文章

PM2 以集群模式停止

nodejs pm2集群模式配置

如何使 socket.io 在 pm2 集群模式下正常工作?

nodejs - 对于在集群模式下运行的应用程序,我应该如何使用 nginx 和 pm2?

PM2入门及其常用命令

Redis5的高可用集群的水平扩展和集群选举原理的分析