If you need minimal memory, you should try Thin. This one does not have a master worker like the Unicorn or Passenger, therefore it uses less memory. Suppose you have a very small application that needs to be run on a small virtual machine, then you can use 1 thin worker + nginx. I ran several rails of 3.2 applications using Thin + nginx + postgres on 256 MB virtual machines without sharing.
The unicorn is faster, but it needs a master worker. Well, if you want to work on Heroku, you can install 2 or 3 workers and be within 512 MB.
If your application is very large and you have too many lengthy requests, I would look at jRuby and Thinidad / Torquebox.
I have converted several applications from MRI + Sidekiq to jruby + Trinidad + Trinidad_Scheduler. I get about 100-200 req / sec using a pool of 50 threads on a Trinidad server!
What I like about jRuby is that you can combine everything on one Rails server. You can build cache_store on one JavaVM using EHcache, Scheduling, Background processing and real multithreading.
You do not need to run redis, memcached, resque or sidekiq separately.
I'm not saying that they are not good, I love sidekiq and resque, but you can reduce your complexity by combining everything on one process and getting high concurrency.
A more advanced and enterprise solution is Torquebox, it supports clustering and is super-scalable. But I had problems with the scam application on the torque, so now I stick to Trinidad.
The flaws of jRuby? Memory! The Trinidad server will use a minimum of 512 MB, up to 2-3 GB. In addition, for a Single Thread server, a single request from a rails application with Ruby-1.9.3 is approximately two times faster than the same jRuby request.
Another option is Puma, you can get full multithreading on MRI using puma. I myself could not get it stable enough in my applications.
So it all depends on your requirements, memory usage, full streaming and concurrency.
In addition to Passenger, take a look at Unicorn, Trinidad, Puma and Torkebox. These now seem to be the best rails servers.
There is a great book with the introduction of converting your Rails application to jRuby and deploying your application using several methods, such as Trinidad. http://pragprog.com/book/jkdepj/deploying-with-jruby
The Torquebox documentation is amazingly good. It is very detailed and explains whether it is really possible to use all the features of Torquebox. http://torquebox.org/documentation/
Hope my experience has helped.