在 Azure 的云服务负载均衡器中禁用关联(Web/Worker 角色)

Disable affinity in Azure's Load Balancer for Cloud Services (Web/Worker roles)

我在 Azure 的负载均衡器中看到了一个明确的非循环负载均衡模式用于我的云角色。大多数请求将发送到我的 Web-Api 辅助角色设置的两个实例的第一个实例。

如何确保 Azure 的 LB 平均分配请求?

请注意,CloudMonix 仪表板的第一个屏幕截图包含 CPU 第一个实例的利用率(60-65% 持续平均值),第二个屏幕截图包含 CPU 第二个实例的利用率(2-5% 持续平均值) ) 这在我调查过的许多不同时期都是一致的。

两个实例都是一样的,只是监听了很多http请求并处理了。

我过去肯定有过同样的问题,但我注意到在持续的一段时间内(几天或更长时间),请求在实例之间是平衡的。根据我的个人研究,您无法在 Azure 云服务上配置负载平衡。 Here是一个描述服务定义文件的文档,我想如果它是可配置的,它就会在那里。

但是,您可以使用 Azure 资源管理器更明确地配置 load balancer

实际上有一种方法可以在 .csdef 文件中为云服务配置 loadBalancerDistribution。缺陷是文档更新:-(

请看这篇文章:https://azure.microsoft.com/en-us/blog/azure-load-balancer-new-distribution-mode/

LoadBalancerDistribution 的值可以是二元组关联的 sourceIP、三元组关联的 sourceIPProtocol 或 none(无关联。即 5 元组)

我会考虑更新架构文章以反映这一点。

至于负载分配——如果你没有特别选择二元组或三元组算法,你应该运行五元组。

可以使用https://resources.azure.com查看当前配置

我知道CPU是负载的反映,但是负载均衡器是根据网络会话来平衡的,所以请确保CPU负载和网络会话的分布相关。在你的情况下,如果他们不这样做,我会感到惊讶 - 只是提醒。

请查看这篇文章以确保您不是 运行 keep-alives:Extremely uneven cloud service load-balancing with Azure