561550
代码:
var http = require('http');
var str = ' .... '; // 300k大小的字符串
http.Server(function(req, res){
res.end(str);
}).listen(8080);
就是很简单的输出300k左右的字符串,同时和nginx做对比。 用ab测试,在并发数在100, 200, 1000, 2000, 10000的情况下,请求10000次:
| 条件 | 100 | 200 | 500 | 1000 | 2000 | 5000 | 10000 |
| node<\td> | 624<\td> | 638<\td> | 639<\td> | 631<\td> | 625<\td> | 622<\td> | 475<\td> |
| nginx<\td> | 4033<\td> | 3754<\td> | 3465<\td> | 3270<\td> | 3109<\td> | 2748<\td> | 3260<\td> |
node 开启4个worker,设置maxSockets为4000 nginx同样开启4个worker,worker_connection为40000
按理说nginx读取静态文件会有磁盘io,但是结果却明显好于node,这是为什么呢?有什么优化的手段呢?