Phusion Passenger 3.0 Public Beta 1 is out
blog.phusion.nl
blog.phusion.nl
In fact, looking through the site, the changes that make up Phusion 3 are incredible. If it works as advertised, there should be no advantages to running Unicorn or a pack of Mongrels anymore. I can hardly wait to try it out!
Some of us dont actually require the "ease of deployment" as performance is the priority, phusion passenger was never about performance as they've previously stated. While the new release is faster than their previous stable, it is still yet to be seen whether it out performs unicorn.
I'll reserve judgement until its been benchmarked against the other available deployment servers.
There exists a belief among some people that Unicorn is faster than Phusion Passenger 2. We've tested this a while ago and it turned out that they're evenly matched. Unicorn's speed is on par with Mongrel's. Unicorn's shared socket helps with fairly load balancing requests between processes but its positive effect on performance is not always significant. We've actually experimented with shared sockets and found that, when done improperly, it can actually hurt performance thanks to the thundering herd problem and the fact that catching EINTR in Ruby is expensive. All of Unicorn's I/O is handled in Ruby. A lot of Phusion Passenger's I/O is handled in C++. Instead we've opted to optimize our global queuing implementation to reach the same load balancing effect while speeding things up.
Phusion Passenger 3's speed surpasses Phusion Passenger 2 by far. You draw your own conclusions.
Of course you can take my answer with a grain of salt. I encourage you to verify these findings yourself.
Phusion Passenger is a module for the Apache HTTP Server and nginx for deployment of Ruby applications, including those built using the Ruby on Rails framework.
So it all basically comes down to ease of deploy against more controlled environment. I think every new rails application should use 1.9.2 and rails 3 by now. Concurrency should not be an issue.
You can use non-blocking concurrent libraries and use Thin in async mode yes. However the quality of support for it varies. Not everything supports Fiber-yielding-to-EventMachine at this time and for applications without long-running I/O blocking operations there's little difference in throughput between async-Thin and multiprocessing servers like Phusion Passenger. If you have long-running I/O blocking operations, like Twitter API calls that can last several seconds, then yes Thin is better.
On the ease of use and stability department, we believe Phusion Passenger is easier to set up than Thin. We also monitor and restart our stuff automatically so that if anything crashes you don't have to manually restart things like is the case with Thin.
As for resource consumption: Phusion Passenger can start and stop processes dynamically. On a low-end server you can configure it to not start your application process (or only start very few of them) until it's needed. We also have plans to implement multithreading support in future versions, with the eventual goal of being hybrid multiprocessed/multithreaded/evented so that the user can choose the best of all worlds.
Well, Thin uses mongrel's parser. Which makes it a sort of a library. And by concurrent I actually meant thread-safe. But forget it.
The main point is: I cannot get any more better / optimal cpu usage with passenger (although I'm certainly getting some cpu / memory overhead). My single thin instance loads every single cpu core to 100% when attacked by httperf. And I was never able to crash it, although I probably didn't do my best.
Monitoring and managing tools are okay, though monit and munin have been here for ages and I sort of like what they're capable of.
But I still agree that ease of use is important for making ruby/rails even simpler and funnier to do. Whatever, no offense intended.
If you're happy with Thin right now, by all means, stick with Thin. No offense taken.
I've now read the full announcement. I know that there is a new version of Phusion Passenger coming out, and that a beta is available now.
Problem is, when I clicked the link, I didn't know what Phusion Passenger was -- and I still don't...
Thanks to Phusion