我如何知道或如何在不同的CPU内核上运行Node.js服务器?

时间:2017-04-30 15:39:52

标签: node.js express

假设我的电脑有一个带2个内核的cpu,而我的node.js应用程序使用了express。我如何在另一个核心上的1核心和同一个应用程序上运行此应用程序?

2 个答案:

答案 0 :(得分:0)

Nicovank是对的。您对名为cluster的功能感兴趣。在nodejs中,您可以通过此代码获得核心数量:

const numCPUs = require('os').cpus().length;

请参阅文档的这一部分:https://nodejs.org/dist/latest-v7.x/docs/api/cluster.html#cluster_cluster。有很好的例子。

答案 1 :(得分:0)

以下是使用cluster模块在​​多个核心中运行的快速服务器的基本示例。

const cluster = require('cluster');
//Get number of CPUs
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);

  // Fork one worker per core.
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`worker ${worker.process.pid} died`);
  });

} else {
    //Worker code...

    const express = require('express');
    const app = express();

    app.get('/', function (req, res) {
        res.send('Hello World!');
    });

    // Bind to a port
    app.listen(8080, () => {
        console.log(`[PID=${process.pid}] server started!`);
    });

}

也有一些第三方模块:

您还可以查看:

Node.js on multi-core machines