0

My front door setup:

  • back end pool with 5 vm's instances
  • each one has weight 50, priority 1

Backend request count graph:

Graph

In grafana i see the same requests distribution, only two nodes under the load balancer.

Is there any solution to setup round robin behavior across all 5 nodes?

Thomas
  • 24,234
  • 6
  • 81
  • 125
rdcm
  • 11
  • 4

1 Answers1

2

There are 4 things that Front Door takes in to account when determining which node to connect to. They are:

  1. Availablity. We will assue that all 5 nodes are healthy so this check passes.
  2. Priority. All nodes are equal in this tier, so all 5 nodes are still in contention.
  3. Latency. This is most likely why you are seeing this result. If, for whatever reason, those two nodes have lower latency than the rest, then you will see more traffic to those nodes.
  4. Weight. Again, you have all the nodes set to the same weight, so the system will use round robin among the nodes that have the lowest latency.

There is a setting called Latency Sensitivity that will come in handy here. The default value is 0, which means that traffic will always be sent to the fastest node. By increasing this value you can equalize traffic between nodes that may be slightly slower to respond than the ones currently being choosen.

Front Door add a backend blade with Latency sensitivity highlighted.

PerfectlyPanda
  • 3,271
  • 1
  • 6
  • 17
  • I couldn't find a way to do it via az cli. Does this exist? – Ashwin Jul 30 '20 at 00:26
  • It looks like it has a slightly different name in the REST API and CLI. The `--additional-latency` property should be the one you are looking for. https://learn.microsoft.com/en-us/cli/azure/ext/front-door/network/front-door/load-balancing?view=azure-cli-latest – PerfectlyPanda Jul 30 '20 at 16:33
  • Thanks for your response. It's kind of a roundabout way to. You cannot updated the default load balancer so you have to create a new one with required latency, create a new backend pool (backendpool does not have an update), update the default routing rule and then delete the default. That's how you can set it. :-| – Ashwin Jul 30 '20 at 17:10
  • 1
    It calls the REST API, which doesn't have seperate Create and Update methods so it might work. I haven't tested it so I can't guarantee that. You could also call the API directly from the CLI with `az rest`. https://learn.microsoft.com/en-us/rest/api/frontdoorservice/frontdoor/frontdoors/createorupdate – PerfectlyPanda Jul 30 '20 at 18:30
  • 1
    It's been a long time, but I want to voice the final solution for me. Front door not used for a long time in my work (around 2 years). I set up Nginx for load balancing on the separated vm machine. And this trick solves my problem. Possibly a more correct solution in use azure load balancer. I don't think my problem was related to Latency. The ping was approximately the same for all vm, all Instances were in the same region. I could mark my comment as a solution to the problem, but I think there is a better solution. – rdcm Apr 06 '21 at 08:57