开发者

NodeJS on Ubuntu slow?

I just installed Ubuntu 10.10 server with NodeJS 0.4.6 using this guide: http://www.codediesel.com/linux/installing-node-js-on-ubuntu-10-04/ on my laptop:

Acer 5920G (Intel Core 2 Duo (2ghz), 4 gb ram)

After that I created a little test how nodejs would perform and wrote this little hello world script:

var http = require('http');

http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('He开发者_运维知识库llo World');
  res.end();
}).listen(8080);

Now to test the performance i used Apache Benchmark on Windows with the following settings

ab -r -c 1000 -n 10000 http://192.168.1.103:8000/

But the results are very low compared to http://zgadzaj.com/benchmarking-node-js-testing-performance-against-apache-php/

Server Software:
Server Hostname:        192.168.1.103
Server Port:            8000

Document Path: / Document Length: 12 bytes

Concurrency Level: 1000 Time taken for tests: 23.373 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 760000 bytes HTML transferred: 120000 bytes Requests per second: 427.84 [#/sec] (mean) Time per request: 2337.334 [ms] (mean) Time per request: 2.337 [ms] (mean, across all concurrent requests) Transfer rate: 31.75 [Kbytes/sec] received

Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.3 1 28 Processing: 1236 2236 281.2 2327 2481 Waiting: 689 1522 169.5 1562 1785 Total: 1237 2238 281.2 2328 2484

Percentage of the requests served within a certain time (ms) 50% 2328 66% 2347 75% 2358 80% 2364 90% 2381 95% 2397 98% 2442 99% 2464 100% 2484 (longest request)

Any one got a clue? (Compile, Hardware problem, Drivers, Configuration, Slow script)

Edit 4-17 14:04 GMT+1 I am testing the machine over 1Gbit local connection. When I ping it gives me 0 ms so that would be good I guess. When I issue the apachebenchmark on my Windows 7 machine the CPU raises to 100% :|


It seems like you are running the test over a medium with a high Bandwidth-Delay Product; in your case, high latency (>1s). Assuming 1s delay, a 100MBit link and 76 Bytes per request, you need more than 150000 requests in parallel to saturate it.

First, test the latency (with ping or so). Also, watch the CPU and network usage on all participating machines. This will give you an indication of the bottleneck in your tests. What are the benchmark results for an Apache webserver?

Also, it could be hardware/driver problem. Watch dmesg on both machines. And although it's probably not the reason for this specific problem, don't forget to change the CPU speed governor to performance on both machines!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜