How many node JS instances are you running on this machine? I am guessing 4? 1 per core and each one is aimed to handle 50k idle connections? And if you are running more then one, how are you load balancing them? Nginx?<p>Also I would like to note I saw your Tornado vs Node.JS hello world test and it made me curious because we use Tornado and we really believed that it was the fastest.<p>So I looked at your results and noticed Tornado had 100x more bytes transfered in your AB test. So I decided to run your same test on a raw Tornado HTTP server (not using the web.py framework) and these were the results of Hello World.<p>These tests were ran on an 3.66 i7<p>Tornado (single instance):<p>import tornado.httpserver
import tornado.ioloop<p>def handle_request(request):
    message = 'Hello Word'
    request.write("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (
                  len(message), message))
    request.finish()<p>http_server = tornado.httpserver.HTTPServer(handle_request)
http_server.listen(8009)
tornado.ioloop.IOLoop.instance().start()<p>ab -c 100 -n 4000 <a href="http://127.0.0.1:8009/" rel="nofollow">http://127.0.0.1:8009/</a>
Requests per second:    10037.84 [#/sec] (mean)<p>Node.js (single instance):<p>var sys = require('sys'), 
   http = require('http');
http.createServer(function (req, res) {
    res.sendHeader(200, {'Content-Type': 'text/plain'});
    res.sendBody('Hello World');
    res.finish();
}).listen(8008);<p>ab -c 100 -n 4000 <a href="http://127.0.0.1:8008/" rel="nofollow">http://127.0.0.1:8008/</a>
Requests per second:    9159.65 [#/sec] (mean)<p>However doing the test the way you did it did show the results you had with Tornado being 2x slower, however I don't believe that was a fair test at all.<p>Just my input.