Also requires node v0.7, which will let you increase the socket listener backlog. Combined all of this should take care of the socket timeout errors.
add clustering to node benchmark, to utilize more cores
What kind of improvement do you see with these changes?
could you patch configure_ubuntu.sh to download and built the best version of 0.7 for this test? I'm going to try this out with 0.7.11 but because I'm not a node.js user, I don't know if that is the best beta version to use.
has require('os').cpus() been fixed by now to return all cores ? i had previously hit a limit on my 80 core test machine.
Forget patching configure_ubuntu, I'll just 0.7.11 since that's what you patch says to use.
I patched it all the same.
I ran this twice on the same server and both times it resulted in more timeouts than before.
Let me test the original right now and see if it's a AWS problem.
Strange. When I ran it on one of my Unbuntu boxes, it got rid of all the timeouts. Is the AWS you're running on single core?
No, it's a m1.large 64bit dual core box. The only variation is that it's technically not the same hardware because I stopped it after the last test. In may experience AWS boxes have varying degrees of performance.
Did you experience timeouts on your boxes before the change?
About 50% timeout on that box. I could get about 4.8k sockets up and running. On the 4 core server, with 0.7.11 clustered it handled all 10k just fine.
Yeah, I can't blame the implementation on this. This new box is performing terribly. The old version is hitting a wall at about 3700 connections. AWS is terrible. I don't think I can confidentially release the results of my previous test on this hardware. I can most certainly not compare any new results to the benchmark I did on Friday night.
Even the Erlang version, while it hit 10,000 clients, took twice as long to get there. This box is crap.