1
votes

If I deploy a web app (formerly known as an Azure WebSite) to an App Hosting Plan in Azure with a couple of instances (scale = 2) will the load balancer in front of the instances care if any of the instances is unhealthy?

I'm troubleshooting an issue that sometimes causes my site to return an http 503 ~50% of the time. My thinking here is that one of two of my instances has failed but the load balancer hasn't noticed.

If the load balancer does care, what does it look for? I can't find anyway to specify a ping url, for instance.

Note: this question has nothing to do with Traffic Manager.

1
That's a pretty rare scenario. Here's a quick way to test and see if one bad instance is the problem: Scale your sites up to a larger instance for a few seconds and then back down to whatever they were originally at. This will move your sites to a fresh set of VMs and if the problem still repros then it's an issue with the app. The down side of this is that it destroys your repro if the problem really was with a bad instanceZain Rizvi
@ZainRizvi it's not so rare for us, which I appreciate points to an app issue. Are you saying that it's not supported?Michael Haren
Actually a better way to test if your issue is instance specific is to use to use ARRAffinity to specify which instance you want your request to go to . See here for more details blog.amitapple.com/post/2014/03/access-specific-instance/…Zain Rizvi

1 Answers

3
votes

Yes, Azure Web Apps monitors the health of the workers by making internal requests to it and verifying that they're healthy.

However, we don't check status codes that the web app returns to user requests (like 500, etc) since that could easily be an app specific issue rather than a problem with the machine.

So the answer you're looking for is: We continuously test whether or not the instances (VMs) are healthy and take them down if they're not. However, those tests do not rely on error codes the customer's site returns