Recommended reading material
- Users guide
-
The users guide, also included in the Passenger gem and source tarball,
describes among other things:
- Installation prerequisites
- Configuration
- Solutions for troubleshooting
- Wiki
- Our publicly editable Wiki allows users to contribute useful documentation and other information.
- Developer documentation
- We’ve written extensive developer documentation so any anyone may contribute to Passenger or peer-review our code. Please check the Development page.
Frequently Asked Questions (or Frequently Given Answers)
- I can't install it / I'm having problems after installation
- Please read the troubleshooting section of the Users Guide. If that doesn't help, please go to the Support page.
- How is performance?
-
According to our tests, Passenger is a bit faster than Mongrel, and seems to be on par with Thin:
Independent performance benchmarks have shown similar results:
- diffuse.it (Passenger is shown to be faster than Mongrel)
- Arie's blog (Passenger is shown to be as fast as Mongrel)
Though we have to say that absolute speed is not our goal. Our primary goals are ease of use, low maintenance and high stability. Of course, we do strive for sufficient performance, and we think that Passenger is sufficiently fast.
- Does it support other Ruby frameworks (Merb, Camping, etc.)?
- Yes, via Rack.
- Why not mod_ruby?
-
- For one, look at its website. Last release was from 2006. We’re not sure whether it’s still maintained anymore.
- Nobody (or almost nobody) uses it in production. This fact alone says a lot.
-
The Rails wiki
page for mod_ruby lists a pretty bad limitation:
“mod_ruby uses a shared interpreter per Apache process, which means that multiple Rails applications on the same Apache setup with mod_ruby would share the framework classes. This doesn't work well with the Rails model of using class-level configuration attributes, so it’s considered unsafe to use mod_ruby and Rails with more than one application running per Apache setup, because different applications may start sharing the classes.”
- Is it stable?
-
We’ve done a lot of stress testing. So far we’ve been unable to make Passenger crash, even when under high load (e.g. ab -n 10000 -c 100).
Also, we've performed some robustness tests as well, and you can read our findings here.
The codebase has also been extensively tested with tools such as Valgrind in order to ensure that there are no memory corruption bugs.
- What happens if a single Rails app crashes? Will it take Apache down as well?
- If a single Rails app crashes, Apache is completely unaffected. Said Rails application will be restarted next time its domain is accessed, as if nothing ever happened. Of course, the error will be logged so that a system administrator or developer can figure out what went wrong.
- Does it support page caching? Are static assets accelerated?
-
Page caching is fully supported, without the need to configure mod_rewrite.
Static assets are accelerated, i.e. they are served directly by Apache and do not go through the Rails stack. This of course implies that page caching is accelerated as well.