This is a common question.
You’re correct: Rails can only handle one request at a time. HOWEVER,
have to know how long the reqest is. 30 people will most likey NOT be
the application at the SAME TIME because web apps connect you and then
disconnect you. In the unlikely event that requests overlap, the users
just wait in line until the server can get to them.
You should run performance tests and determine your site’s capabilities
terms of ‘requests per second’
Your deployment platform makes a huge difference. One instance of
running on Linux can often be as performant as three instances of
Use httperf on Linux to test your URLs to see how many requests per
you can handle with your current server.
As for simplicity:
Mongrel_cluster is a plugin that will let you set up multiple instances
Mongrel, each on its own port. You have to use Linux for this.
Pen is a simple load balancer that can link them together.
Say I have two instances of Mongrel running, one on port 4001 and one on
To start listening on port 4000 with Pen, I just do
pen -r 4000 localhost:4001 localhost:4002
General rules apply here too… you need to optimize your application.
page caching whenever possible (like pages which don’t need
and use action or fragment caching whenever you can to reduce the
time. Ensure you’re eager loading data when appropriate to avoid
unnecessary database access. Make sure you’re running in production
things run faster
And consult the community. We’ll help you out where we can.
Good luck to you!