I've never been able to get Linux to give me this many file descriptors. If you can convince your OS to give you enough fds, handling 100,000 idle connections is no more difficult than handling one idle connection. The OS feature that polls for activity is O(1) over the number of fds to poll. The memory your app needs to keep each connection alive is minimal, and of course scales linearly.<p>People like throwing around the number 100,000... but this is really nothing to be excited about. Having 100,000 users is much more exciting than having 100,000 sockets connected from 127.0.0.1...
Slightly related...<p>I have been really enjoying writing code for node.js - I'm using it to render content for non-javascript capable clients and it's handing the load nicely. Being able to maintain one set of tests is a huge win over having a python and a JS implementation.<p>Has anyone got a good way to redirect non-JS clients to a different set of URLs? At the moment I'm using a combination of user agent sniffing and js+meta page refresh, is there a better way?
Out of curiousity, what client side JS library to people typically use for comet? I've used Orbited and found it pretty good albeit light on documentation.
A general tip for benchmarking:
Never run the benchmark tool on the same machine as the application. Both will compete for CPU and the results will be nearly useless.<p>Apart from that it might be useful to use several clients (e.g. with autobench) especially if the application is able to handle _many_ requests.