This article seems to have missed some major differences between Passenger and the other app servers. In my comparisons, I've found Passenger difficult to compare to other app servers on the basis that it aspires to be more than its competition. Specifically, Passenger rolls in its own watchdog [1] and management toolchain (utilities like passenger-status and passenger-memory-stats). Passenger also tries (and succeeds) in minimizing your investment in configuration and tweaking of your app server. These are things you have to roll your own solutions to if you are using other Ruby app servers.
This is not to say you shouldn't use those other app servers, or that Passenger always wins on performance, but I've always forced myself to ask the question: how will I benefit from the performance advantages of other app servers?
Another thing to keep in mind is that you have to look very carefully at your performance issues to understand whether your app server is actually your performance bottleneck. App servers get a lot of attention. There are droves of articles written comparing the maximum request rate achievable under circumstances that very few applications operate. The bottom line is that if your application spends most of its time executing Ruby code, your app server isn't your bottleneck. There is the possibility that you'll see an improvement in memory usage, but you need to test your application rather than rely on generalized assumptions. The improvements might not be worth the trade-offs.
This is not to say you shouldn't use those other app servers, or that Passenger always wins on performance, but I've always forced myself to ask the question: how will I benefit from the performance advantages of other app servers?
Another thing to keep in mind is that you have to look very carefully at your performance issues to understand whether your app server is actually your performance bottleneck. App servers get a lot of attention. There are droves of articles written comparing the maximum request rate achievable under circumstances that very few applications operate. The bottom line is that if your application spends most of its time executing Ruby code, your app server isn't your bottleneck. There is the possibility that you'll see an improvement in memory usage, but you need to test your application rather than rely on generalized assumptions. The improvements might not be worth the trade-offs.
1: https://www.phusionpassenger.com/documentation/Design%20and%...