Backslapping Ruby’s average performance once again
codehappy.wordpress.com
codehappy.wordpress.com
The vehicle, Space Shuttle, simply carries a payload a few miles off the surface of the Earth.
The author gives no basis for comparison, what would the identical app in Python require for hardware? Also, the app does more than just serve up images. It seems that the most common experience with RoR is that it is less performant than other Languages/Frameworks, but this article can hardly be considered proof of that.
They are serving around 3/4 of a billion page views a month. That's billion with a B. So yeah, I'd give them a slap on the back for that. Would it be cooler if they needed 9 app servers instead of 13--sure, but come on.
The data is really open to interpretation, which would allow you to draw any conclusion from it, unless a more detailed breakdown of lows/highs was provided.
I'm really not sure what to think of this. I know Ruby isn't a speed demon, but 25 servers to serve up a few hundred images per second is just insane. These articles about scaling Ruby/Rails apps remind me a bit of those old Java/EJB/SuperEnterpriseEdition/TimeSink hello world examples that took 80+ lines of code... only with hardware.
I'm not a big Ruby fan, but I have a hard time believing that this is representative of the experience one could expect to have scaling a Ruby application. Can anyone here share some personal experience? All that seems to be out there is the typical Twitter bashing kind of stuff.
By the way, I think this is the article the blog refers to: http://blog.linkedin.com/blog/2008/06/web-scalability.html
It's not like a blog or digg, or even YouTube where you can just serve up static files for the most part. Social applications tend to be extremely write-heavy and every request ends up hitting the full Rails stack.
We do around 1/3 of a billion page views per month and we run on about half of those machines. http://highscalability.com/friends-sale-architecture-300-mil...
As for the large number of static image servers, that again has nothing to do with Rails.
Anyway, I doubt changing languages would fix the problem. You'd still bottleneck on MySQL (for extracting data), and generating images (since every language uses the same image libraries; all written in C anyway).
In conclusion, without some more data, the author is clueless.
However, I do agree that Ruby (and Rails) needs to get its act together. Sure, its never going to be the best, but the ease of development and deployment and (etc.) makes it very, very hard to turn down.
BTW: 25 servers to service up to 400 images per second is inaccurate. It only took them 8 asset servers to serve that amount of images. Even so, that is pretty ridiculous. I would have to say that they didn't spend time optimizing their asset servers, or anything else other than Ruby. I think it could be done better.
Honestly, I just find that hard to believe.
If the author wants to write another "gosh, relational databases aren't always perfect for every situation" article, get in line.
Let the flame war about Rails begin!