-2

I have a smallish site which I expect to have extremely high concurrent traffic for a few hours each month. I'm trying to work out what hosting solution will ensure the site never goes down.

Here are the details:

  • LAMP based site. (3 pages that are db driven), preferably Ubuntu Linux.
  • At peak times we expect around 2 million concurrent users, for around 3 hours each month. The number is high because each month there is a product launch event (like an iPhone launch event) streamed live to the home page. The stream itself is an embedded YouTube stream.
  • At non-peak times traffic will be maybe 100 concurrent users.
  • Users will mainly be in the UK, Europe and the USA.

Can anybody give me some advice? Also any tips on how I should load test this?

I've heard of things like load balancing, dedicated servers, Amazon AWS and Rackspace, but have got really confused and unsure about what the best course of action is.

MikeyB
  • 38,725
  • 10
  • 102
  • 186
MakkyNZ
  • 147
  • 1
  • 1
  • 6
  • 4
    `I'm trying to work out what hosting solution will ensure the site never goes down.` Good luck, **never** is an impossible goal. Just yesterday, Amazon.com was down for 30ish minutes. – MDMarra Aug 21 '13 at 17:31
  • 1
    IMO, this is very similar to this possible duplicate of [Can you help me with my capacity planning?](http://serverfault.com/questions/384686/can-you-help-me-with-my-capacity-planning) – TheCleaner Aug 21 '13 at 18:32
  • Last I looked, the UK was widely considered to be a part of Europe... – user Aug 21 '13 at 18:36

2 Answers2

5

Since you KNOW when you peak times are going to be:

  • provision a larger server on a cloud provider for that time
  • if your load is too heavy for a single server, use a load balancer in front of them
  • make as much of your site as static as possible
  • use a CDN for your static resources
MikeyB
  • 38,725
  • 10
  • 102
  • 186
  • I remember back in September 2001 that at least CNN did something very similar to this: they temporarily switched their web site to a *very* bare-bones, probably static, HTML page with a few images. Must have saved tons of CPU time on their servers. – user Aug 21 '13 at 18:37
3

In addition to MikeyB's answer you may want to consider a dynamic infrastructure.

Using a cloud provider and something like Amazon's ELB you can spin up resources as needed, and this is probably the most logical solution with today's technology -- you can even automate the server management (starting up or shutting down more web front-ends based on load) with a little work.


In terms of load testing, for the above solution you would figure out what load a singe server can support, then throw multiples of that at your test environment and verify that it appropriately starts (and stops) extra servers.
You can then determine the optimal size of your static pool of servers, and let the software manage the rest.

voretaq7
  • 79,345
  • 17
  • 128
  • 213