【发布时间】:2018-05-28 13:06:05
【问题描述】:
我正在使用带有 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:NodeJS 运行 4 个集群。
结果: ==============================
推出的场景: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
===========================
我的 Node 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 代码未正确编写以衡量性能。
请帮忙。
【问题讨论】: