Alex Rivera | Logout

Architecture recommendation for load-balanced ASP.NET site

Asked 2009-03-05T04:31:01.903
13

UPDATE 2009-05-21

I've been testing the #2 method of using a single network share. It is resulting in some issues with Windows Server 2003 under load:

http://support.microsoft.com/kb/810886

end update

I've received a proposal for an ASP.NET website that works as follows:

Hardware load-balancer -> 4 IIS6 web servers -> SQL Server DB with failover cluster

Here's the problem...

We are choosing where to store the web files (aspx, html, css, images). Two options have been proposed:

1) Create identical copies of the web files on each of the 4 IIS servers.

2) Put a single copy of the web files on a network share accessible by the 4 web servers. The webroots on the 4 IIS servers will be mapped to the single network share.

Which is the better solution? Option 2 obviously is simpler for deployments since it requires copying files to only a single location. However, I wonder if there will be scalability issues since four web servers are all accessing a single set of files. Will IIS cache these files locally? Would it hit the network share on every client request? Also, will access to a network share always be slower than getting a file on a local hard drive? Does the load on the network share become substantially worse if more IIS servers are added?

To give perspective, this is for a web site that currently receives ~20 million hits per month. At recent peak, it was receiving about 200 hits per second.

Please let me know if you have particular experience with such a setup. Thanks for the input.

UPDATE 2009-03-05

To clarify my situation - the "deployments" in this system are far more frequent than a typical web application. The web site is the front end for a back office CMS. Each time content is published in the CMS, new pages (aspx, ht

Edit
Report

1 Answer

0

Assuming your IIS servers are running Windows Server 2003 R2 or better, definitely look into DFS Replication. Each server has it's own copy of the files which eliminates a shared network bottleneck like many others have warned against. Deployment is as simple as copying your changes to any one of the servers in the replication group (assuming a full mesh topology). Replication takes care of the rest automatically including using remote differential compression to only send the deltas of files that have changed.

answered 2009-03-31T08:50:55.883

Your Answer