Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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).

share|improve this question

closed as too localized by Ben Pilbrow, Scott Pack, womble, Tom O'Connor, Ward Aug 14 '11 at 18:36

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
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
    
    
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

2 Answers 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.

share|improve this answer
    
Thank you for your advice. Very much appreciated :) –  jtnire Aug 13 '11 at 18:36
    
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 9: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 or JMeter. –  RedGrittyBrick Aug 14 '11 at 9:55

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.

share|improve this answer
    
That's a very good point, and I'll edit my post to answer your question :) –  jtnire Aug 13 '11 at 14:47

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