7

我有一个运行长时间执行进程的应用程序。为了使其更快,我对数据进行了简单的分片,并希望通过 .fork() 相同应用程序的 2 个实例并行运行它们。

我在那里有 2 个核心机器,并希望确保使用 2 个核心并且第一个实例在第一个核心上运行,第二个在第二个核心上运行。

我知道cluster模块,但在这种情况下似乎无关紧要,因为我不需要运行 HTTP 服务并在它们之间进行负载平衡。只是工作人员(意思是,他们不需要相互通信、发送消息或其他任何东西——他们只做 HTTP 请求并将数据存储到数据库中)。

是否有可能控制 node.js 进程占用哪个 CPU 内核?如何在 Mac/Linux 上监控它?

4

2 回答 2

3

集群模块正是您所需要的:http ://nodejs.org/api/cluster.html

于 2014-08-15T16:25:23.167 回答
0

你想要这个,它是集群 API 的一个特定部分:

cluster.setupMaster([settings])

https://nodejs.org/api/cluster.html#cluster_cluster_setupmaster_settings

我还编写了一个模块来执行此操作,并且有几个:

https://www.npmjs.com/package/poolio

我的模块运行良好,但 API 不是那么简单,所以我建议使用核心模块

于 2016-04-10T01:29:03.310 回答