最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在多个路由中声明的workerpool是否仍然可以在不关心阈值的情况下保持其cpu使用率

网站源码admin31浏览0评论

在多个路由中声明的workerpool是否仍然可以在不关心阈值的情况下保持其cpu使用率

在多个路由中声明的workerpool是否仍然可以在不关心阈值的情况下保持其cpu使用率

我希望找出一个带有 workerpool 的 node.js 系统来处理 cpu 密集型任务,但是 关于多条路线中的 CPU 使用情况,我有些困惑。 一个场景是这样的:

route1.js:
  const workerpool = require('workerpool');
  const pool = workerpool.pool(__dirname + '/job1.js');
  pool.exec.......
route2.js:
  const workerpool = require('workerpool');
  const pool = workerpool.pool(__dirname + '/job2.js');
  pool.exec.......
route3.js:
  const workerpool = require('workerpool');
  const pool = workerpool.pool(__dirname + '/job3.js');
  pool.exec.......

node.js使用这三个文件时,会创建自己的workerpool,并且 由于 worker_thread 编号及其控制是通过 node.js 内部实现的,这是否可能 创造门槛问题?以及如何以正确的方式使用工作池,非常感谢。

回答如下:

我要做的是只有一个工人池。 Worker 可以公开多个函数,因此您的 Worker 可以毫无问题地公开 job1、job2 和 job3。如果你为每个创建一个池,你需要考虑池可能相互对抗......

考虑您的池获得 100% 的 CPU,这意味着如果所有 3 个池都已满,您最多可以需要 300% 的可用资源。

如果你为它们每个分配 33%,这意味着你最多可以要求 100%,这很好,但如果一次只需要 job1,它将只能使用 33% 的可用资源。

通过使用单个池,您可以达到 100%,而不需要超过 100% 的可用空间。

发布评论

评论列表(0)

  1. 暂无评论