Skip to main content

Passenger vs Puma

Servers • Asked by Matt Walston

I notice that there seems to be a preference for Passenger over Puma in your screencasts and hatchbox.io. Can you elaborate? I was curious about HTTP/2, multithreading, performance, etc.


It's about 100x easier for anyone new to running their own Rails apps. It's far more helpful when things go wrong with it's nice error pages and everything. That's the main reason.

Learning should start with the easy way to get started and then work your way up. Most of the support requests I get on Hatchbox come from people using Puma with know knowledge of how to use or debug it. That doesn't happen with Passenger since it just works and doesn't require any special setup. Puma requires you to run it as a separate service, unix sockets, gotta read the logs to find out why it's not running, etc. Not near as user friendly, but that's why they can charge money for Passenger.

It's also faster than Puma if you pay for Passenger Enterprise, but it can be costly. Since it's written as an NGINX module, it's running C code, not Ruby. https://www.rubyraptor.org/how-we-made-raptor-up-to-4x-faster-than-unicorn-and-up-to-2x-faster-than-puma-torquebox/ "Raptor" was their codename for Passenger 5.

Puma is free, so most people like that for obvious reasons. There are lots of blog posts on both, so you can make the decision on what you want to use.


Thank you for such a thoughtful answer. Makes perfect since to me.


Hi. I have an inbuilt chat functionalty on my application that utlises websockets. My server freezes up very often and I can't figure out what config is best suited for my app.
https://github.com/phusion/passenger/wiki/Puma-vs-Phusion-Passenger talks about puma vs phusion-passenger. I have inferred my app will need multithreading (message relay jobs) hence I'm rolling back to puma which I had changed to phusion-passenger due to the same problem earlier. Am I addressing the problem here ? What do you think ?


Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 24,647+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.