Web-server – Understanding down-sides of network load balancing with two computers vs traditional three-way load balancing

iis-7.5load balancingweb-farmweb-server

We have one site on IIS build in ASP.NET with DNN. Currently we try to configure network load balancing for two servers. The service hosting provider told us this would be enough, but we seem to have hit a brick wall:

  • network load balancing only forwards requests from his public ip, it doesn't check the availability of the servers
  • if a server goes down, 50% of the requests will see a "server not a available" until we manually remove the server from the load balancing configuration
  • I don't see a way to configure this with two servers without this problem

With three-way load balancing, aka web farm, a single system checks which servers are available. If a server goes down, it will forward the request to the other server.

Is the above a correct assumption of the limitation of network load balancing, leading to classical web farm as only solution, or is there something the hosting provider can configure to prevent this behavior and have us stick with only two systems?

Best Answer

You have in fact hit one of the classic limitations of NLB. A Windows NLB cluster is only able to check if the node itself is available and cannot check if the actual application is still up and running. Ultimately what you need is for some type of health check of the application which can be done with a physical load balancer or perhaps a software load balancer such as the Microsoft Application Request Routing (ARR).

Another alternative that is somewhat new is a cloud based load balancer such as the offering from Rackspace. This gives you the benefit of having many of the features of a physical load balancer without the cost of implementing physical hardware.

Hope that helps.

Edit: There is somewhat of a way for NLB to perform health checks, however, it still requires what amounts to a third server. System Center Operations Manager has a management pack that can monitor applications. Details about that can be found here. If you are going to go through the trouble of adding something like this, you may as well look at the benefits of an actual load balancer that can perform the necessary health checks.

Related Topic