gpt4 book ai didi

node.js - Node : one core, 许多进程

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:18 24 4
gpt4 key购买 nike

我在网上查找了一下,似乎找到的都是与“Node 如何从在多核 cpu 中运行中获益?”这个问题相关的答案。

但是。如果你的机器只有一个核心,那么在任何给定时间你只能运行一个进程。 (我在这里考虑任务调度)。并且 Node 使用单线程模型。

我的问题:是否有任何场景可以在一个核心中运行多个 Node 进程?如果进程是一个监听端口的 Web 服务器,那么在只有一个进程可以监听的情况下,它如何工作?

最佳答案

My question: is there any scenario in which it makes sense to run multiple node processes in one core?

是的,有一些场景。请参阅下面的详细信息。

And if the process is a web server that listens on a port, how can this ever work given that only one process can listen?

node.js 集群模块创建了一种场景,其中在所需端口上有一个监听器,但传入请求在所有集群进程之间共享。更多详情请关注...

您可以使用集群模块运行多个进程,这些进程都配置为处理同一端口上的传入请求。如果你想知道传入的请求是如何在不同的集群进程之间共享的,你可以阅读 this blog post 中的解释。 .简而言之,最终在所需端口上只有一个监听器,并且传入请求在各种集群进程之间共享。

至于您是否可以从比内核更多的进程中获益,答案是这取决于您正在寻找的 yield 类型。如果您有一个正确编写的具有所有异步 I/O 的服务器,那么添加比核心更多的进程可能不会提高您的整体吞吐量(以您的服务器每秒可以处理的请求来衡量)。

但是,如果您的请求中有任何 CPU 密集型处理,那么多一些进程可能会在同时请求之间提供更公平的调度,因为操作系统将在您的每个进程之间“共享”CPU。这可能会略微降低整体吞吐量(因为任务在进程之间切换 CPU 会增加开销),但即使有多个请求要一起处理,它也可能会使请求处理更多。

如果您的请求没有太多 CPU 密集型处理并且大部分时间实际上只是在等待 I/O,那么添加比核心更多的进程可能没有任何好处。

因此,这实际上取决于您要针对什么进行优化以及您的情况。

关于node.js - Node : one core, 许多进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38863931/

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