【问题标题】:Will multiple NodeJS apps run on different cores?多个 NodeJS 应用程序会在不同的内核上运行吗?
【发布时间】:2021-12-04 07:11:50
【问题描述】:

假设我有一个具有 2 个 CPU 内核的服务器,然后我启动了 2 个 NodeJS 应用程序。由于 NodeJS 是单线程的,这两个 nodeJS 应用程序是运行在不同的内核上还是运行在同一个内核上?

如需更多信息,我想扩展我的 Socket.IO 服务器。所以我想运行这个 Socket.IO 服务器的两个实例没有集群。我担心即使我启动了它们的两个实例,它也不会利用所有的核心。

【问题讨论】:

  • 用 pm2 或 fork 运行它
  • @michalpavlik 这对于大多数应用程序来说确实是不必要的。而且,只有两个核心,我真的怀疑这个人会需要它。

标签: node.js


【解决方案1】:

这两个 nodeJS 应用程序会运行在不同的内核上还是运行在同一个内核上?

您正在运行两个不同的进程。计划它们运行的​​位置取决于您的操作系统。是的,他们将使用不同的内核。它与任何其他可执行文件的多个实例没有什么不同。

由于 NodeJS 是单线程的...

这有点像神话,不适用于大多数 Node.js 应用程序。当然,您的 JavaScript 运行单线程,但所有 I/O 和本机模块中的所有内容都可以是多线程的。

您可以自己轻松地对此进行测试,以了解您的特定应用程序的负载情况。具体来说,这完全取决于您在做什么。

【讨论】:

  • 那么操作系统是否仍然可以决定在同一个内核上运行两个进程?一旦操作系统决定在同一个内核上运行两者,如果内核过载,它会以某种方式改变内核吗?对不起,我认为这个问题与操作系统的东西更相关,但也许你知道答案。
  • 啊 NVM,我想我已经找到了答案:stackoverflow.com/questions/18496888/does-a-thread-run-on-the-same-cpu-core-throughout-its-life
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
相关资源
最近更新 更多