Windows群集上的nodejs高内存使用率

时间:2016-11-24 05:05:33

标签: node.js windows http memory

我使用快速静态插件,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),结果相同。

1 个答案:

答案 0 :(得分:0)

我在笔记本电脑上使用ab测试10秒钟测试你的代码(稍作修改),效果很好。 更改为cluster.isMasterapp.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