2016-11-24 53 views
0

我用快递静态插件,Windows 2008的64位,8G内存,万兆网,节点-6.9.x 64位集群的NodeJS高内存使用率

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到8G的约五minutes.at这次约1500 connections.outgoing带宽300MB /万兆,约150MB,主进程30MB每一个工作进程。

System performance monitor show 
----------------------------------------------------------------- 
receive|   using 7.8G      | free 100Mb 
--------------------------------------------------------------- 

内存所使用的是谁?大约15分钟,工作人员进程崩溃。

我尝试HTTP服务器模块(NPM安装HTTP服务器),相同的结果。

+0

你怎么做1500间的连接测试? – iKoala

+0

系统性能监视器 - > TCPv4 - >连接活动 – Luodong

+0

我不明白为什么这个示例代码默认会创建1500个连接。 – iKoala

回答

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 
+0

是的,我也测试局域网。没问题,我的服务器运行在互联网上,我觉得慢连接影响。静态文件约1MB〜。 – Luodong

+0

静态插件使用发送模块,发送模块最终使用pipe,由于连接速度慢,系统Cache? – Luodong

+0

以上代码来自哪里?你能否显示所有的代码? – jiajianrong