gpt4 book ai didi

javascript - 这个单个 Node.JS 应用程序使用多个内核吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:00 24 4
gpt4 key购买 nike

在只运行 1 个 Node.js 脚本的 Ubuntu 18.04 系统上,htop 显示两个 CPU 内核都在使用。

运行 1 个 Node 脚本: enter image description here

没有运行 node.js 脚本: enter image description here

此 Node.js 脚本有多个事件监听器,用于接收数据、进行一些数据处理并将它们发送到远程数据库服务器。

foo.on('msg', msg => { setImmediate(() => do_work(msg)) } );

问题:尽管 Node.js 是单线程的,但为什么看起来两个 CPU 内核都被 Node 平均利用了?观察到的 CPU 负载分配为 60%/40% 和 50%/50%

它实际上使用了两个 CPU 内核吗?或者只是一直在它们之间快速切换,但一次只真正利用 1 个内核?换句话说,当 CPU 工作负载高于 1 个核心但低于 2 个核心时,这种情况将导致系统阻塞。

基本上,我想知道单核系统是否足以满足此工作负载。谢谢!

最佳答案

即使只有一个 JS 函数(每个环境)1 会在任何给定时间在一个内核上执行,但这并不意味着

1:您提到您只运行一个脚本,这意味着只有一个 JS 对象领域。 node.js 应用程序在多线程上运行的另一种可能性是产生 workers ,每个都有自己的 JS 环境,并通过事件进行通信。

关于javascript - 这个单个 Node.JS 应用程序使用多个内核吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59696766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com