繁体   English   中英

Azure 云服务的负载平衡不工作

[英]Azure Load Balancing of Cloud Service not working

我有一个 web 应用程序部署到两个实例上的云服务,大小为 A1v2 标准。 我的理解是,一旦我部署了多个实例来为同一个公共端点提供服务,负载平衡应该由 Azure 自动处理(因为它是云服务)。

我 RDP 进入每个实例。 这是第一个例子: 在此处输入图像描述

如您所见,它使用了 100% 的 CPU。

这是第二个例子: 在此处输入图像描述

只是坐在那里! 不做一件该死的事!

最糟糕的是,这也会破坏自动缩放。 平均 CPU 使用率为 50%,因此 Azure 不再提供更多实例。 可能是一件好事,因为他们只是坐在那里什么都不做(捂脸)。

在Azure中,云服务可以用作负载平衡器,VM应该具有相同的Availability set ,并且应在端点处设置负载平衡器规则 负载平衡端点在公共IP地址和分配给云服务中虚拟机上的服务的本地端口之间具有一对多关系

一台VM的CPU使用率接近100%,另一台为3%。 由于Azure负载平衡器会一次将所有新请求发送到一个VM,并且在LB探测另一个健康状况(在我的情况下是15秒)之后,LB会将新连接发送到另一个VM,因此一个VM的CPU使用率将高于另一个。
这是我的LB规则: 在此处输入图片说明 关于自动缩放,我们应该检查SCALE的配置。
1.我们应该检查Instance range ,如果您仅创建2个实例,即使平均CPU使用率高于目标,自动缩放也不会缩放到3个实例。
2.我们应该检查目标CPU设置。 此范围代表整个角色的平均CPU使用率。 Windows Azure将添加或删除虚拟机,以使您保持在此范围内。 并且平均CPU使用率(5分钟)高于/低于目标值,则自动扩展将添加/删除虚拟机。
这是我的自动缩放设置: 在此处输入图片说明

我们也可以这里找到自动缩放操作日志 在此处输入图片说明

我正在研究并解决与您类似的问题。 可扩展的云服务似乎不会立即均匀分布请求。 我确实发现,在等待一段时间后,我可以在应用程序洞察中看到请求实际上正在分发,并且 CPU 开始在两个实例上拆分和更改。

我刚刚接到 MS 的电话支持电话,想了解默认情况下 Scaled Load Balancer 是如何工作的——他们帮助我了解了用于分发请求的 Hash 基于 5 元组 Hash 规则,该规则检查以下内容5个元组。

引自他们的 email 回复

Azure LB will follow the 5 tuples rule to distribute different requests. 
If the 5 tuples of the requests are all the same, 
Load Balancer will distribute the requests to the same role for further work.

The 5 tuples are: 
•   Source IP
•   Source Port
•   Destination IP
•   Destination Port
•   Protocol Type

更多信息在这里: https://learn.microsoft.com/en-us/azure/load-balancer/distribution-mode-concepts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM