Save 36% for Black Friday! Learn more

All threads / Passenger vs Puma

Ask A Question

Notifications

You’re not receiving notifications from this thread.

Passenger vs Puma

Matt Walston asked in Servers

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 ?

Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 39,376+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

    © 2020 GoRails, LLC. All rights reserved.