【发布时间】:2020-06-05 21:05:30
【问题描述】:
我知道这可能是个愚蠢的问题。我不擅长操作系统知识。
通常我们 fork 的集群/进程的数量是 CPU 内核数,例如 Nodejs offical Doc 显示。
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
// Workers can share any TCP connection
// In this case it is an HTTP server
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}
但我很困惑,如果我们将集群分叉的数量超过 CPU 内核的数量,会发生什么?
是经验值、最佳实践还是其他原因?
【问题讨论】:
标签: node.js express operating-system v8