potential enterprise rails project (hello Brian)

Let me try my best to answer these questions:

  1. “not as performant” - any idea of numbers ?

Sure… but it all depends on your setup. For example, I have a 2 ghz dual Xeon Windows machine that handles requests at a whopping 11 requests per second using one instance of Mongrel. Similar hardware yeilds 50 to 75 requests per second using Ubuntu and Mongrel (again, single instance).

You need to know what your ceiling is for your applications. How many requests per second do you need to handle, and what is the current threshold. If you only need to handle 5 to 8 req/second now, then running on Windows with a single Mongrel instance will work great for a long long time. Don’t forget that page caching and action caching where possible will REALLY help you push a Windows deployment much much farther than you thought possible.

We put Rails on a brand new 64-bit 2k3 server with dual 3ghz processors and got 35 requests per second with a single dispatche.

Here’s what you have to do:

  1. Measure an existing (non-Rails) application using httperf (free linux program) and get your baseline.

  2. Get the new app installed on Windows using Mongrel in production mode

  3. Run httperf against this one and see how you compare.

Ruby is much slower on Windows for some reason. It’s been discussed before. I have seen much imporved performance on AMD chips though for some reason and I don’t understand that. (My AMD machines have much better response times… go figure.) Adding more Mongrel instances helps a lot on Windows but it’s harder to manage multiple apps because Mongrel_cluster does not work on Windows. I also don’t see as big a gain as I do on Linux.

But Linux is the way to go for long term high volume stuff. If you need to handle millions of requests per day (10+ req/s) and you’re not seeing it with Windows, then you have to move your apps.

  1. I’ve got a few in production .They work just fine. See above regarding loads.

  2. Pen works on Windows if you can find it. Apache 2.2 with mod_proxy_balance works wonderful as well. This will be covered in the book

  3. The method outlined in my articles and in the book will make moving to Linux seamless to your organization and your users.

I hope that helps!