We are having a web farm which hosts multiple ASP.Net applications. We typically have 4 servers on the farm.

The dilemma which i am having is in terms of capacity issue of the farm. Lets say i have currently got 200 apps in total. Should I deploy all 200 apps on all 4 servers (i.e. all the servers in the farm are identical) or should i split the applications between 2 sets of server and create 2 smaller farms so that i can then manage the application based on its criticality and usage etc.

Any best practices in this area would be highly appreciated.




Good question. That's no best practice since it really depends on your application. One thing to consider is that you often have RAM cache overhead, so to have a site on 4 servers may duplicate the in-memory cache 4 times. So if it's not needed on all 4 nodes, just put it on 2 for redundancy.

Also, if you have problem sites with unpredictable CPU or RAM or disk IO, you may want to isolate it to its own mini-farm. There's no right or wrong on this.

What I like to do in some cases is create a webfarm that has the entire config for multiple sites, but only have some active on each node. With your example, you could put all 200 apps on all 4 servers, keeping the config in sync with shared config. Then using your load balancer (may I suggest ARR), have each app active on 1 or 2 nodes at a time. That keeps the total memory requirements lower while giving you flexibility to take nodes in and out at will, or spin a site up on more nodes on short notice. You can even keep the 4th node as an option for the problem sites.

Disk space is another consideration. If you're using local disks for your content, you'll need to handle the content for all 200 apps on all 4 servers.

Whatever you do, be deliberate about it and make sure that it's manageable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy