2

我有一个 node.js 服务器。我知道 1 个节点进程绑定到 1 个 CPU/CORE。所以我有 2 个 CORE 盒子,我使用集群启动 2 个进程来利用盒子的 2 个 CORE。

但是,我无法理解这将如何与 EC2 实例 ECU 概念一起使用。

例如。一个 m1.large 实例有 2 个 vCPU 和 4 个 ECU(有效计算单元)

当我使用集群启动 node.js 时,它会启动 2 个节点进程。但是,在我有 8 个内核的桌面上,它启动了 8 个节点进程。

现在我想知道具有 2 个内核和 4 个 ECU 的 m1.large 上的 node.js 服务器是否会比只有 2 个内核且没有 ECU 的盒子表现得更好

请回答我的问题。

4

1 回答 1

2

亚马逊 ECU 是虚拟核心,因为它们基本上是具有 2 个至强处理器的真正核心的虚拟服务器。因此,具有真正 2 个核心的盒子将比虚拟 ECU 表现更好。而且我不认为亚马逊 ECU 与真正的 ECU 相同cpu 核心亚马逊弹性云。到目前为止,我正在生产服务器上使用 nodejs 和 EC2,我只需设置两件事来利用 m1.large 实例的最大 cpu 功率。

  1. nginx 后面的多节点进程作为反向代理负载均衡器

    一个。我在不同的端口上设置了不同的 nodejs 进程。

    湾。在它们前面有一个 nginx 负载均衡器,用于在每个线程之间分配负载。

  2. 我还尝试使用Cluster模块将子进程与主线程分叉。

我最终选择了 nginx,因为它的管理比集群少,而且集群还处于实验阶段。

我还尝试探索更多关于 EC2 和 nodejs 的信息,这是我的另一个答案Utilizing cpu core with nodejs

而且我还建议您尝试一些解决方案并在每种情况下继续监视您的系统,例如 cpu 使用内存 io,最后您将获得适合您的用例的更好的解决方案。每个应用程序都有自己的要求。因此最好尝试找到您的应用程序真正需要的内容。

于 2013-08-07T20:46:21.870 回答