4

设置:

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 实例并检查它们

4

1 回答 1

1

一个 m3.xlarge 实例有几个 cpu 核心,而 node.js 是单线程的。您可以尝试对node.js 集群模块进行基准测试,看看使用更多 CPU 是否有帮助。而且,由于 node.js 相当新,请确保使用最新的稳定系列(撰写本文时为 0.8.x)。

于 2012-11-07T14:01:06.150 回答