0

I've been tasked with a project. We are hosting a web service for a client which will only serve static content (from the filesystem). The system has to handle 10,000 connections at any one time.

There will be a database to store customer details, however I do not believe that there will be any PHP session going on.

From the your past experience, and given the static nature of the site, do you think that 2 X load balanced Apache Web Servers with 8GB of RAM, each having a RAID10 disk array will suffice? I intend to load balance using a single pfSense machine.

For the database, I was thinking of going for a single database server with a RAID10 Array using 8 spindles, as well as 24GB of RAM and Dual Quad Core CPUs.

What does everyone think?

Any suggestions are very much appreciated

Thanks

Edit:

As someone pointed out below, "static" and "database" contradict each other. To clarify this, the database will be used solely for customer details gathering (i.e. writes only). So no authentication, or any content being retrieved from the database. The sites code will be in PHP, but only for this data gathering, as well as to retrieve content from an external source hosted elsewhere (via some API).

jtnire
  • 777
  • 2
  • 7
  • 15
  • Your "edit" does not clarify anything. Why would you write to a database when you are not going to read from it? – mailq Aug 13 '11 at 14:51
  • Your "newedit" points out that this is **not** static and by the way a **very bad** idea to make a site dependent on another site. – mailq Aug 13 '11 at 14:54
  • 1
    As I mentioned, the database will be used to gather customer details. Yes, of course the database will be read from, but this will be at a later date. And why is the site not static anymore? There will be no content dynamically generated. Yes, there will be PHP scripts doing work, but any content retrieved from this system will be in the way of text (HTML) and image files. – jtnire Aug 13 '11 at 15:01
  • [The difference between 'static' and 'dynamic' web site](http://www.decart.com/go.idecs?i=186) – mailq Aug 13 '11 at 15:26
  • Ok then, now that you've finished arguing with me over naming (which, quite frankly, doesn't matter in the end of the day), can you please comment on my setup? Given that any content being retrieved will be text and images from the filesystem, and there will be no database driven content. Thanks – jtnire Aug 13 '11 at 15:43
  • I'm not entirely certain what you're asking, as you seem to not fully understand what a static site is. However, have you considered simply using S3 (possibly with CloudFront if you need a CDN)? Depending on your needs, it could be cheaper. – Tom Marthenal Aug 13 '11 at 16:33
  • Thanks for your suggestion about using S3, however we want to do this in house. I'm sorry but I don't see how my misunderstanding of what a static site is has anything to do with my question, given I've explained the nature of the site (no database driven content, however text and images will be display from the filesystem, with the possibility of remote content being displayed) – jtnire Aug 13 '11 at 17:04
  • My mobile phone can handle this - the one from 2011. Dump the site through cloudflare and the static data disappears as traffic. The rest is miniscule. – TomTom Sep 19 '16 at 14:57

2 Answers2

2

Static content serving is usually measured in requests per second not simply concurrent connections.

Some comparisons on a single server with i3 2.4GHz, 4GB RAM, 5400 RPM disk served 10,000 requests a second to 500 concurrent clients using Apache MPM, using nginx the numbers were over 20,000 per second, regardless of the number of clients (up to 1000).

It might be worth using different servers (software and possibly separate hardware) for truly static (HTML) and PHP URLs. For purely static HTML and PNG/GIF/JPEG files other types of httpd-server software may do even better.

RedGrittyBrick
  • 3,792
  • 1
  • 16
  • 21
  • i3 don't make great server CPUs. They're "designed" for desktop use really, and have different caches / pipelines that show that. – Tom O'Connor Aug 14 '11 at 09:32
  • @Tom: True. I imagine that a typical quad-core Intel Xeon with SAS would do better but I didn't find benchmarks for that which relate to the question. Ideally, jtnire would set up his/her own benchmark test using something like [apachebench](http://httpd.apache.org/docs/2.2/programs/ab.html) or [JMeter](http://jakarta.apache.org/jmeter/). – RedGrittyBrick Aug 14 '11 at 09:55
0

You can achieve this with way less power!

As you only have static content without any database interactivity you can achieve this simple task with even one dual core. Needing a fast webserver with extensive caching and when not all files can be cached also with a speedy SSD. So single machine should be fine.

mailq
  • 16,882
  • 2
  • 36
  • 66