如何知道或如何在不同的CPU内核上运行Node.js服务器?
假设我的电脑有一个2核的cpu,我的node.js应用程序使用express。如何在一个核心上运行此应用程序,在另一个核心上运行此应用程序?如何知道或如何在不同的CPU内核上运行Node.js服务器?,node.js,express,Node.js,Express,假设我的电脑有一个2核的cpu,我的node.js应用程序使用express。如何在一个核心上运行此应用程序,在另一个核心上运行此应用程序?Nicovank是正确的。您对名为集群的功能感兴趣。在nodejs中,您可以通过以下代码获得内核数: const numCPUs = require('os').cpus().length; 请参阅本节文档:。这些模块都有很好的例子。下面是一个使用该模块在多个内核中运行的express server的基本示例 const cluster=require('
Nicovank
是正确的。您对名为集群的功能感兴趣。在nodejs中,您可以通过以下代码获得内核数:
const numCPUs = require('os').cpus().length;
请参阅本节文档:。这些模块都有很好的例子。下面是一个使用该模块在多个内核中运行的express server的基本示例
const cluster=require('cluster');
//获取CPU的数量
const numpus=require('os').cpus().length;
if(cluster.isMaster){
log(`Master${process.pid}正在运行`);
//为每个核心分配一名工人。
for(设i=0;i{
log(`worker${worker.process.pid}`);
});
}否则{
//工作代码。。。
const express=require('express');
常量app=express();
app.get('/',函数(req,res){
res.send('helloworld!');
});
//绑定到端口
应用程序监听(8080,()=>{
log(`[PID=${process.PID}]服务器已启动!`);
});
}
还有一些第三方模块:
- (具有以下功能的节点进程管理器)
- 强循环-
您还可以检查:
请参阅本机群集模块
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!`);
});
}