我正在使用带有 NodeJS 的 Artillery.IO 来衡量性能。NodeJS 在我的本地主机上运行,我也在同一台机器上运行 Artillery。
当我用这个脚本运行 Artillery 时。
{
"config": {
"target": "http://localhost:3000/",
"phases": [
{
"duration": 10,
"arrivalRate": 2
}
]
},
"scenarios": [
{
"flow": [
{"get": {"url": "/"}}
]
}
]
}
案例 1:NodeJS 在单个集群中运行。
结果:===============================
推出的场景:20
已完成的场景:20
完成的请求:20
发送的 RPS:2
请求延迟:
min: 1.1
max: 4.6
median: 1.2
p95: 3.3
p99: 4.6
场景计数:
0: 20 (100%)
代码:
404: 20
===============================
案例 2:运行 4 个集群的 NodeJS。
结果:==============================
推出的场景:20
已完成的场景:20
完成的请求:20
发送的 RPS:2
请求延迟:
min: 1.2
max: 4.7
median: 1.4
p95: 3.2
p99: 4.7
场景计数:
0: 20 (100%)
代码:
404: 20
===========================
我的节点 Server.js 代码是:
var http = require('http');
var express = require('express');
var os = require('os');
var app = express();
var server = http.createServer(app);
var io = require('socket.io')(server);
app.get('/', function(req, res,next) {
for(let i = 0; i < 10000000000; i++) {
}
console.log("Get Request received");
res.send(new Date());
});
server.listen(3000, function() {
console.log("Server is running in Port 3000");
});
我的问题是为什么我在集群模式下运行 NodeJS 时没有任何改进?
它是否与 NodeJS 和 Artillery 在同一系统上运行的事实有关,或者它是 server.js 代码没有正确编写来衡量性能。
请帮忙。