Assuming that I and some of my friends trying to build a social network for a large number of people approximatelly 4,000,000. Let's say a random 100,000 of them will be available online every day. The database usage will be let's say 200 MB a day!

Now How can I know how many servers do I need and which will be best to suit our goal?


  • Where are you going to get 4,000,000 unique users from, and how are you going to convince 100,000 of them to be on the site at any one time? You Are Not Facebook. – Tom O'Connor Mar 6 '11 at 18:21
  • 100,000 a day not per minute :) I mean the total in 24 hrs will be approx. 100,000. – Goma Mar 6 '11 at 18:30
  • 100,000 visits a day or 100,000 unique visitors a day? – Mark Mar 6 '11 at 18:41
  • 7
    It sounds like you haven't written the software yet. You need to do that, the benchmark it, before you can answer this question. – sciurus Mar 6 '11 at 19:03

Unless you happen to have 4 million users all lined up ready to use your site I would just get one cheap server to start everything with and see where it goes from there. Concentrate, instead, on building a scalable software platform for your service. Test, benchmark, profile everything you can so you know what the limits of your software/hardware is at any time and what effect changes have.

If you are mainly just curious about high end scalability you can search for how the current "big guys" do it and the challenges they faced along the way. For example, Facebook, Wikipedia, High Scalability, MySpace, etc.... You may not be aiming so high but you can learn a lot from how they do things and use the same design patterns. Unless you have experience working with such large systems it is very hard or impossible to guess the scalability issues you are going to have until you have them.


Will depend on how much time/page loads the average user has. Social networking tends to be "sticky" according to Facebook, so people hang around for a while. More page loads means more load on the system. The code behind the site will have another huge effect, better code will put a lighter load on the system.

These days if you don't have a good idea how much/how fast your site will grow you might want to consider one of the cloud hosting environments like EC2 or Rackspace Cloud/Slicehost. You can buy two server instances to get started, and add more servers quickly as load changes. Experience with your app is the best way to get a solid idea on how much capacity you will really need. Excess capacity sitting around is expensive, so avoid it if you can.

Having said that, 100,000 users isn't a huge load if they only load the page a few times a day. You should be able to get started on that with as little as a single server and probably no more than 2-3 total.


We don't have 1/4th of the info needed to respond to this question, 1 we need to know your budget,2 we need to know how efficient and how much power your code takes. How much data will you have? And quite honestly 4 million isn't likely, and if you had that much you'd hire a professional to evaluate your needs.


Depending on the quality and efficiency of the code I'd say three average €3-4000 servers, perhaps even up to five or six for redundancy and load-balancing.

100.000 users browsing an average of ten pages per hour during 16 hours a day amounts to about 280 requests/sec and bursts at perhaps three or four times that.

200MB of database usage a day is, I don't know, a tad optimistic. I think even tenfolding it still won't be enough.

It often boils down to how many req/s your "code can handle".
A request taking a third the amount of resources and time will in theory be able to be delivered three times as many as it's poorly written counterpart.

Not the answer you're looking for? Browse other questions tagged or ask your own question.