# Can Rails handle 300+ users online at the same time (compare

**URL:** <https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372>\
**Category:** Rails\
**Created:** [December 14, 2006, 4:56pm UTC](https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372 "2006-12-14T16:56:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/838e76/32.png) [@rob](https://www.ruby-forum.com/u/rob)\
**Post date:** [December 14, 2006, 4:56pm UTC](https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372/1 "2006-12-14T16:56:06Z")

</div>

We are at the beginning stages of a website and are trying to decide  
whether to use Rails or PHP for it, as it will have around 300+ users  
online at the same time (mostly during the nights). I ask because I  
know Ruby is a little slow compared to a language like PHP.

I would rather develop it in Rails as I’m more familiar with it and  
can get things done much faster, but if it can’t handle this many  
users than we’d probably need to move towards PHP or something.

By “handle”, I basically mean will pages load quickly given enough  
server resources (this will be on a dedicated server, for the site  
only)? I see some Rails sites and it takes a good 15-20 seconds  
sometimes to fully load (based on Safari’s progress bar) for them.  
The site is mainly going to be pulling information from a database  
that isn’t constantly changing; we will add content to it a couple of  
times per week, so the whole site isn’t really “dyanmic”. I’m sure we  
could use caching in parts to help speed it up?

Thanks for any help…  
Rob

---

<div class="post-metadata">

**Author:** ![rob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/838e76/32.png) [@rob](https://www.ruby-forum.com/u/rob)\
**Post date:** [December 14, 2006, 5:14pm UTC](https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372/2 "2006-12-14T17:14:09Z")

</div>

This really is a dead issue. 300 users at the same time is not a  
measurable  
metric. The real thing you need to look at is number of requests you  
can  
process in a given period. You need to determine your threshold. What  
is  
an acceptable level of requests per second.

First, find out how many requests per second your web server can  
handle…  
test against static pages. Then figure out what your acceptable level  
should  
be. Is it 5 requests per second? 50? 100?

I would say that Rails is just as fast as PHP or Java for most  
applications.  
And you can really blow past the competition with proper setups, proper  
use  
of caching pages / actions / fragments, and tuned databases.

Don’t let the FUD fool you… learn how to make your applications scale,  
because they will.

Finally, where did the “300 users at the same time” number come from?  
It’s  
not realistic because the web is stateless. Once the request is done,  
the  
user’s not part of the equation anymore until they click something  
again.

Now, you want to slow your site down? Use lots of AJAX. More  
transactions  
will mean more load which means you’ll have to configure things  
differently.

I am more than happy to help with specific questions on how to load test  
/  
etc.

---

<div class="post-metadata">

**Author:** ![rob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/838e76/32.png) [@rob](https://www.ruby-forum.com/u/rob)\
**Post date:** [December 14, 2006, 5:16pm UTC](https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372/3 "2006-12-14T17:16:09Z")

</div>

Definitely you can use caching. On the apps I’m currently working on,  
the content is very dynamic, so rails’ action and page caching won’t be  
very useful to me right now. However, I’ve been looking at memcached.  
AWDWR made memcached seem like it was difficult to use and configure,  
but it’s really not. Configuring your app to use memcached for its  
session store is especially easy. Ditto for caching models, which will  
severely cut down your database CPU load and time waiting for queries.  
I’m also getting into caching render-heavy sections of my index pages(  
the current index page on the site I’m rewriting gets ~35,000 hits / day  
).

There’s a good article about getting started here:  
[http://nubyonrails.com/articles/2006/08/17/memcached-basics-for-rails](http://nubyonrails.com/articles/2006/08/17/memcached-basics-for-rails)

If you’re on a dedicated server for a single site, though, I don’t think  
that 300+ users (I’d use maybe 10 fcgis behind lighttpd) would be a  
problem for rails at all.

Jason

---

<div class="post-metadata">

**Author:** ![rob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/838e76/32.png) [@rob](https://www.ruby-forum.com/u/rob)\
**Post date:** [December 14, 2006, 5:46pm UTC](https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372/4 "2006-12-14T17:46:19Z")

</div>

yup, caching helps a lot. another big on is making sure your database  
queries are well-written. Rails makes it easy to not think about the  
database, but many times it’s much better to use find\_by\_sql() instead  
of using all the finder magic.

if it’s any consolation - we have a pack of 10 mongrels serving around  
415 req/sec all day long. We respond with pure XML (no rhtml  
rending), so it’s not comparable to a true “website”, but you get the  
idea - Rails can do it if you know how to tweak.

Ed Hickey  
Developer  
Litmus Media  
816-533-0409  
removed\_email\_address@domain.invalid  
A Member of Think Partnership, Inc  
[www.ThinkPartnership.com](http://www.ThinkPartnership.com)  
Amex ticker symbol: THK

On 12/14/06, Jason N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > We are at the beginning stages of a website and are trying to decide  
> > only)? I see some Rails sites and it takes a good 15-20 seconds
> 
> >

–

---

<div class="post-metadata">

**Author:** ![rob](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/838e76/32.png) [@rob](https://www.ruby-forum.com/u/rob)\
**Post date:** [December 14, 2006, 5:18pm UTC](https://www.ruby-forum.com/t/can-rails-handle-300-users-online-at-the-same-time-compare/79372/5 "2006-12-14T17:18:22Z")

</div>

Rob wrote:

> We are at the beginning stages of a website and are trying to decide  
> whether to use Rails or PHP for it, as it will have around 300+ users  
> online at the same time (mostly during the nights).

Rails can easily handle this providing:

1. Sufficient hardware (your going to run this on servers capable of  
supporting this load, correct?)
2. Enough “Mongrels” are released behind Apache to support this (do your  
testing and see how many you need)
3. Sufficient OS (I know I’ll get nailed for this, but  
Ruby/Rails/Apache/etc. doesn’t run as well (or fast) on Windows as it  
does for me on Linux or Mac OS X - just my experience, other people’s  
mileage may vary)

Also, you can consider LiteSpeed server if Apache is not an option.
