I'm working on a couple of ASP.NET projects that have needs for Load Balancing, one of which has the potential to go 'really' big in terms of hitting extremely high loads that would almost certainly require a pool of at least 10 front Web Servers to handle.

 

Over the years I've worked with a few clients that have needed load balancing and we've usually resorted to Network Load Balancing in Windows 2000 and then 2003 later. NLB works well once configured right, but it is a bitch to get it set up and working correctly in the first place, or keep it working when hardware or configurations change. NLB is software driven and while it works well performance wise (about a 1.7 load factor ratio addition per added machine) the configuration is horrendously finicky.

 

I've had more than a couple of installation where no matter what was tried the cluster didn't want to work until we plugged in different network cards or sometimes even switched the order in which servers are accessed in the pool even though both cards were on the supported hardware list. Even in my office test environment I had problems at times getting two machines to converge that had previously converged just fine a few months earlier with the machines essentially unchanged. Each time it takes a fair amount of time to coerce the machines back into operation as a cluster.

 

Since it comes with Win2003 now, NLB is a fairly inexpensive solution, which is why it's attractive to customers, but the maintenance aspect really bites. In the end, on most of those installations I'd done I get called on from time to time to 'tweak' or fix the NLB cluster.

 

It's been quite some time since I've worked with other load balancing software (last I used was back in 1997 with Surplus Direct/Egghead) – I imagine things have changed a bit…

 

So… what are other folks doing for large load balancing scenarios with ASP.NET applications and what has been your experience with these products?  I'd also be interested in hearing about using NLB in large server count Web farms.