【问题标题】:Nodejs Worker threads - How many workers should I spawn in the pool?Nodejs 工作线程 - 我应该在池中生成多少个工作线程?
【发布时间】:2021-03-04 16:09:50
【问题描述】:

我想使用 Nodejs Worker threads 来处理 CPU 密集型任务。我将为此创建一个可用的工人池。

我的问题是:我应该在池中生成多少工人?

假设我有一个 4 核 8 线程 cpu - 我应该生成最多 3 或 7 个工人(基于核心或线程)?我假设我必须为主进程保留 1 个核心/线程。

【问题讨论】:

    标签: node.js multithreading node-worker-threads


    【解决方案1】:

    我用workerpool 做了一些测试。基于这些,我的结论是工作池最多只包含 n - 1 个工作人员,n 是 CPU 拥有的线程数。

    例如,如果我有一个 10 核、20 线程 CPU,我应该在我的池中生成最多 19 个工人。

    【讨论】:

      【解决方案2】:

      不确定,但大多数建议的数字取决于 CPU 的数量。

      例如,节点使用 4 个工作线程。

      workerpool 中,maxWorkers 的默认数量是 CPU 数量减一。当无法确定 CPU 数量时,maxWorkers 设置为 3。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-20
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        • 2014-01-19
        • 2014-06-07
        • 2018-05-16
        • 2013-06-05
        相关资源
        最近更新 更多