Rails Phusion Passenger vs. Mongrel Handlers, Anyone Dare Try?

Update: An answer from the heavens descends! On the same day of my post, no less. Gotta love an active framework.

Like most of the Rails community, I’ve been swept up in the fascination lately over easier deployment via Passenger. After getting 2.2 deployed, I had hoped that Bonanzle could try to make the leap to Passenger and become yet another success story of a multi million monthly page viewed site proving that the hype behind Passenger is legit.

But then I remembered our Mongrel handlers, specifically, that said handlers are currently satisfying about 50% (or more) of the requests for our entire site (mostly through chat and instant message reads + posts). As such, upgrading to Phusion puts me ill at ease, because I would think that if our Mongrel handlers became standard Rails actions, we would 1) require twice as many Rails instances to run our site, possibly requiring more memory with Phusion instead of less and 2) incur a much greater overhead per request, when Rails runs its routing and other pricey (and in this case, unnecessary) default behaviors on our requests.

Normally I might pose this question to a forum, but given the esotericness of the problem, I suspect that such a question would assuredly be greeted with crickets. If anyone else has actually tried this, or seen any stories comparing the two, I’d love to hear them and post them to this blog to make it easier for others to find.

If all else fails, I plan to eventually setup a test case to actually benchmark and get some numbers, but that would figure to be at leeast a 1-2 day ordeal by the time sufficient reliable data could be gathered.

3 Replies to “Rails Phusion Passenger vs. Mongrel Handlers, Anyone Dare Try?”

  1. This is typically the purpose of Rack Middleware (or and of its upcomming proprietary brother Rails Metal).

    Rack is an excellent (if not better) alternative to Mongrel handler.

    As Mongrel with handler, Passenger can launch any Rack compliant app (Rails is now just a Rack app from Passenger POV).

    So if you want to follow the Passenger trend, Rack + Rails is a good alternative to Mongrel Handler + Rails.

    Or you could wait Rails2.3 upcomming version (or use edge) and just use Rails Metal (not sure it will not consume uneeded memory through).

    Hope this help.

  2. Hey Nel,

    Yep, you’re spot on. I updated the post shortly after I heard about metal, and actually spent a day trying to upgrade to edge to use it, but found that edge is quite aways from being production-ready at this point (most disturbingly, 2.3 would randomly forget sessions… but only one every 200 page loads or so)

    I think that Rack/metal route is definitely the route we’ll go when we make our move.

    Cheers, Bill

  3. Allan Does anyone know of a HOWTO or FAQ to get this going? I’m geinttg very frustrated by what seems to be a simple exercise just not working! I can see that Netbeans can make use of this module in the Services’ tab but as soon as I try to make use of it in my Netbeans platform-based app it complains that it cannot find a suitable driver for the database! At my wit’s end with this!

Leave a Reply to Nel Cancel reply

Your email address will not be published. Required fields are marked *