Best web server for running a Rails site?

You don't use Mongrel by itself. You use a mongrel cluster with a load balancer, like Apache. That takes the load of any static files off of Ruby. Then there's your app. The execution of an application request dwarfs any work that Mongrel is doing. If 99% of a request is application processing then it doesn't matter if you switch from Mongrel to an infinitely fast (magic) app server--you'll still only get 1% improvement.

There's a lot of Rails performance hysteria out there right now, but it's important to remember that Ruby is only slow relative to other languages, and not terribly slow at that. You don't see people running out and building web frameworks in C++ just because "Java is slow".

Exactly, what is slow? My productivity has increased tenfold and the performance is top-notch. Serving static files through Apache and balancing the rest to a mongrel cluster is just a dream come true.

The benchmarks I've seen put Ruby at the slowest language out there that anyone's actually using. That said, slow is often relative to what you're doing, how you code it, and what other facilities you use. Rails has a lot of mechanisms (caching, etc.) to help speed up your *app*.



The Ruby performance issue is around execution speed. Threads won't particularly help with that, except insofar as they reduce the memory footprint of the application server. It isn't clear how much they'll help there, since a lot of the infrastructure will need to be replicated anyway.


Another issue, that hasn't yet been raised, is that if your Ruby code is spending 90%+ of it's time waiting on you SQL queries to return, then the performance difference between Ruby and any other language becomes irrelevant. In my experience this is true a very large percentage of the time. Most of your performance tweaking will be database related anyway.