node.js - 在运行时确定哪个内核正在运行 Node.js 进程

标签 node.js

我正在查看“os”和“process”模块源代码,但似乎没有办法在运行前/运行期间/运行后确定 node.js 进程在哪个核心上运行。

我正在寻找类似的东西:

process.env.CORE_ID   //not real

我只是想确认不同的node.js进程运行在不同的内核上。这似乎是合理的,尽管操作系统最终选择在哪个核心上执行 node.js 进程,但一旦操作系统启动进程,我们应该能够读取该数据。

最佳答案

进程不附加到任何操作系统中的特定核心(除了,可能在一些实时导向的操作系统中)。

处理器(和核心)是可以在需要时分配给任何进程的资源。一个线程一次只能在一个核心中执行,但核心由所有进程共享。操作系统负责在可用内核上调度进程。因此,当任何进程由于 let 执行(或继续执行)同一内核中的另一个进程而“暂停”时,没有理由期望下次在同一内核中恢复该进程。

当您在一台 CPU 事件相对较低的(多核)机器中通过简单地执行 htop 来获得具有高 CPU 消耗的单个进程时,这会稍微观察到。然后你可以看到总是有一个高占用的核心,但是它是哪个核心会定期变化。

关于node.js - 在运行时确定哪个内核正在运行 Node.js 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496989/

相关文章:

node.js - 缺少元素的 "key" Prop 。 (ReactJS 和 TypeScript)

javascript - 如何分离 session 控制而不是将其写在每个路由中

javascript - 根据常量显示单选按钮

angularjs - 从同一模型 AngularJS 添加多行

javascript - 在具有任意数量子 Node 的树中,查找 Node 是否在给定 Node 的左半子树或右半子树中

node.js - 通过 node.js 使用 mailgun 发送邮件 - 找不到请求的 URL

javascript - 如何在 Node js中的同一模块文件中使用模块

javascript - 从 NodeJS 内部调用 Express Route

javascript - 如何断言不为空?

node.js - 将 node.js 应用程序部署到 Amazon Elastic beanstalk 时出错