Friday, August 13, 2010

Node.js can't use multiple CPU/Cores

I just install Ubuntu 10.04 and got Node.js up and running.

It's scary how easy it is to create a highly scalable web / socket application.

Don't get too excited yet. The gurus at Yahoo had this to say:

But all is not sunshine and lollipops in NodeJS land. While single-process performance is quite good, eventually one CPU is not going to be enough; the platform provides no ability to scale out to take advantage of the multiple cores commonly present in today's server-class hardware. With current NodeJS builds, the practical limits of a single CPU acting as an HTTP proxy are around 2100 reqs/s for a 2.5GHz Intel Xeon.

While Node is relatively solid, it does still crash occasionally, adversely impacting availability if you're running only a single NodeJS process. Such problems can be particularly common when using a buggy compiled add-on that can suffer from the usual cornucopia of C++ goodies such as segfaults and memory scribbling. When handling requests with multiple processes, one processing going down will simply result in incoming requests being directed at the other processes.

And lastly, Alex Payne sums up what large scalability and why node.js might just remain the realm of the less than skilled programmers.

Threads are not dead!

This looks interesting for javascript :