Experiences with RAM and CPU Demand of Rails Applications?


given the fact that there are numerous different hosting offers with
different parameters and technologies, I would like to ask if there are
some heuristics or rules of thumb existing to determine the demand of an
own rails application?

Input parameters would be something like:
page impressions/day, average site size (in KB), average complexity of
the rails logic of a site

example 1

  • 1,000 page impressions/day
  • 75 kb average site size
  • complexity: simple data base application (simple selects etc)

example 2

  • 25,000 page impressions/day
  • 75 kb average site size
  • complexity: middle (some more complex selects using joins etc.)

How much RAM, CPU etc. is necessary to realize such requirements? Is it
possible to do it with classical webhosting (sharing a cpu with a lot of
other people) or do one need VPS or cloud hosting? What parameters for
RAM and CPU are necessary? At which configuration of the mentioned input
parameters are VPS or cloud hosting necessary?

I’m aware of the fact, that can not be an exact calculation but I’m
interested in the dimensions. I want to get a feeling what kind of
hosting (and parameters) is necessary to realize a specific rails
application (in terms of page impressions/day etc.).

Thanks in advance,

How much RAM, CPU etc. is necessary to realize such requirements? Is

You could get away with the smallest/cheapest/slowest system for
either of the above requirements. Remember that 25,000 impressions/
day is really only one every three seconds or so. Which is nothing
as far as traffic goes. And certainly one Rails instance could handle
it without any issues.

The problem is that traffic is never evenly spread out like that.
What you need to look at is concurrent requests per second. That’s
the metric that really matters. For example, if those 1,000 hits/day
all come b/n 5:00 and 5:01 I’m gonna need a much bigger backend to
handle the load.

That all said, the only real piece of advice I can give you is that a
single Rails instance tends to use b/n 30-80mb of RAM depending on
what you’re doing. Which means in the real world, given say a 256mb
VPS (say a slice at slicehost since that’s what i’m most familiar
with) you’re going to max out your rails instances somewhere between 3
and 4. So let’s assume it’s 3.

Now, look at your app and figure out how long an average request
takes. Do the math and now you know how much traffic you can support.

Good luck!