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.
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...
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.
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.
I'm also using Orbited on my project Colorillo, but it seems that it will be superseeded by js.io (http://js.io/). I was having a look at it but its documentation is even worse than the one of Orbited :)
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.
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.
[+] [-] jrockway|16 years ago|reply
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...
[+] [-] ig1|16 years ago|reply
[+] [-] ytinas|16 years ago|reply
http://www.kegel.com/c10k.html
[+] [-] z8000|16 years ago|reply
What do you mean precisely? Do you mean that even with proper ulimit, sysctl, etc setup Linux fails to give you this many descriptors?
[+] [-] notauser|16 years ago|reply
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.
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?
[+] [-] cschneid|16 years ago|reply
[+] [-] mattiss|16 years ago|reply
[+] [-] akirk|16 years ago|reply
[+] [-] xhuang|16 years ago|reply
[+] [-] herrherr|16 years ago|reply
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.
[+] [-] moon_of_moon|16 years ago|reply
[+] [-] z8000|16 years ago|reply
[+] [-] andrewvc|16 years ago|reply