我使用快速静态插件,Windows 2008 64位,8G内存,10Gb网络,节点6.9.x 64位
var cluster = require("cluster");
var http = require("http");
var express = require("express");
if(cluster.isMaster()){
for (var i = 0; i < 4; i++)
cluster.fork();
}else{
var express = require("express");
var app = express();
var http = require("http");
app.use(express.static(""));
http.createServer(app).listen(8080);
}
内存增长非常快,从1Gb到8Gb大约需要5分钟。此时大约有1500个连接。外出带宽300Mb / 10Gb,每个工作进程大约150MB,Master Process 30MB。
System performance monitor show
-----------------------------------------------------------------
receive| using 7.8G | free 100Mb
---------------------------------------------------------------
记忆是谁用的?大约15分钟,工人进程崩溃。
我尝试了http-server模块(npm install http-server),结果相同。
答案 0 :(得分:0)
我在笔记本电脑上使用ab测试10秒钟测试你的代码(稍作修改),效果很好。
更改为cluster.isMaster
和app.use(express.static("/"));
var cluster = require("cluster");
var http = require("http");
var express = require("express");
if(cluster.isMaster){
for (var i = 0; i < 4; i++)
cluster.fork();
}else{
var express = require("express");
var app = express();
var http = require("http");
app.use(express.static("/"));
http.createServer(app).listen(8080);
}
结果是:
Benchmarking 127.0.0.1 (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Finished 26960 requests
Server Software:
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 13 bytes
Concurrency Level: 300
Time taken for tests: 10.023 seconds
Complete requests: 26960
Failed requests: 0
Write errors: 0
Non-2xx responses: 27097
Total transferred: 5717467 bytes
HTML transferred: 352261 bytes
Requests per second: 2689.93 [#/sec] (mean)
Time per request: 111.527 [ms] (mean)
Time per request: 0.372 [ms] (mean, across all concurrent requests)
Transfer rate: 557.09 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 3.1 0 498
Processing: 94 109 46.2 104 609
Waiting: 12 79 48.5 77 567
Total: 94 109 46.3 104 609