服务器代码
module.exports = function(cluster){
let express = require('express')
let app = express()
app.get('/',function(req, res){
console.log('Worker %d started!'+new Date(), cluster.worker.id);
sleep(60000)
for(var i = 0; i < 999999999; i++) {}
res.end('Hello from Worker ' + cluster.worker.id);
console.log('Worker %d returned!'+new Date(), cluster.worker.id);
});
app.listen(8080,function(){
console.log('Application started! Worker %d started!, process %d', cluster.worker.id, cluster.worker.process.pid);
});
function sleep(miliseconds) {
var currentTime = new Date().getTime();
while (currentTime + miliseconds >= new Date().getTime()) {
}
}
}集群代码
let cluster = require('cluster');
let app = require('./index');
cluster.schedulingPolicy = cluster.SCHED_RR;
if(cluster.isMaster){
let cpuCount = require('os').cpus().length;
for (var i = 0; i < cpuCount; i += 1) {
cluster.fork();
}
cluster.on('exit', function() {
cluster.fork();
});
}else{
app(cluster);
}
cluster.on('fork', function(worker) {
console.log('forked -> Worker %d', worker.id);
});-When I在默认的快速端口8080上命中多个API,然后它只使用CPU的一个核心,等待第一次命中的进程,然后执行下一个请求。-Why集群不使用CPU的另一个核心来处理4(用于四核CPU)请求。
发布于 2018-10-12 10:48:09
与其从单个选项卡运行脚本,不如使用多个命令选项卡运行它,您的计算机的所有CPU都将被利用,您可以在系统监视器中检查它们。
https://stackoverflow.com/questions/52754327
复制相似问题