设置:
EC2 上的 2 台机器,类型为 m3.xlarge。
第一个使用 ubuntu 服务器。
第二个win2008r2。
ubuntu 上的 node.js 使用基本示例返回对任何请求的字符串响应。
asp.net httphandler 返回相同的响应。
使用https://github.com/newsapps/beeswithmachineguns 我使用 10 台机器执行 200000 并发 2000(每台机器 200)我运行基准测试并得到:
节点JS:
Complete requests: 200000
Requests per second: 5605.170000 [#/sec] (mean)
Time per request: 358.071900 [ms] (mean)
50% response time: 31.000000 [ms] (mean)
90% response time: 239.300000 [ms] (mean)
IIS:
Complete requests: 200000
Requests per second: 9263.810000 [#/sec] (mean)
Time per request: 215.992900 [ms] (mean)
50% response time: 214.000000 [ms] (mean)
90% response time: 244.000000 [ms] (mean)
nodeJS代码是:
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Some response\n');
}).listen(80);
httphandler 代码是:
context.Response.Write("Some response\n" + Guid.NewGuid().ToString("N"));
我以为node js会快很多,是我做错了吗?
编辑:
使用集群模块后,我每秒从节点 js 收到 16685 个请求,我将调出最强的 EC2 实例并检查它们