I run Rails -- minimally six processes of memory chewing lovin' at any time, plus the assorted DBs and cache stores -- and spend, oh, call it $2,000 a year more on my 1.5GB VPS than I would need to for equivalent functionality for Java.<p>I get a metric truckload more than $2k of developer productivity out of using Rails instead of Java, though.<p>If my traffic increased such that I needed 40 Mongrels and 20 Delayed Job workers and I was spending $20k a year on hosting, I'd... I'd... I'd really, really like if that happened, actually.
" It just baffles me that [Rails scalability] is not a solved problem already."<p>Maybe if they open-sourced this "Goliath" framework they created we'd be a little closer.
Good piece - having built a big Rails application, I love the speed of development but your comments about scaling totally resonate. Actually it was even worse in my case due to us using jruby (add VM overhead to the mix.) RAM is often the most expensive component of the cost to run an application and as things stand now Ruby/Rails makes it hard to keep those costs down.<p>I really like the idea of using Ruby's continuations to avoid the need to write all of your logic in CPS (ala node.js.)<p>From the memory standpoint, doesn't this just move your memory overhead from the machine stack to continuations on the heap? I do realize there are some advantages to heap over stack, especially on 32-bit architectures.<p>And in addition, what kind of overhead do you get when creating a continuation for the kind of deep call stacks you're dealing with?
This is actually a very timely article. I built a web-service in Rails over the weekend that has turned out to be much slower in production than I had anticipated...<p>The catch is that it spends 96% of it's time waiting for network responses. 10ms in the application code, 289ms waiting.<p>So now I either re-write the application in a language more suited to the task (node.js) or I work to build async capability into the current app. Personally, I'll take the second if it's not stupidly hard.
Is this article applicable to Rails 3?<p>Why not just handle expensive parts of one's app with a simple rack handler? Do you really need form helpers, etc. in every part of the app?
<a href="http://www.espace.com.eg/neverblock/" rel="nofollow">http://www.espace.com.eg/neverblock/</a> is the closest thing I've heard of to an async Rails framework.