azure - CPU 上的服务结构自动平衡

标签 azure azure-service-fabric

我正在尝试确定 Service Fabric 是否会根据其中一个节点上的 CPU 负载自动平衡群集。

根据 MSDN 文献,Service Fabric 自动平衡指标 ( https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-resource-manager-balancing/ )。默认指标是计数和主要计数,我们可以定义和报告其他指标。但是,没有提及在节点变得太“热”(即 CPU 过高)时移动副本和平衡集群。

我设置了以下内容来尝试模拟此场景。

我创建了一个 Service Fabric 应用程序,并使用以下服务将其部署到 5 节点 Azure 集群:

  1. 具有简单 int 计数的有状态服务。它公开了一个远程接口(interface),该接口(interface)会增加计数并让 CPU 保持忙碌 1 秒。该服务分为 10 个命名分区 - a、b、c、d、e、f、g、h、i、j。

  2. Web API 无状态服务,为请求的分区调用上述接口(interface)。

  3. 无状态服务,监控节点 CPU 并在 CPU 超过 50% 时报告健康警告

将应用程序部署到集群后,我注意到两个分区具有相同的主节点。例如,分区“a”和“c”的主分区都位于“节点 1”上。然后,我在本地运行一个客户端应用程序,该应用程序每秒为这两个分区调用上述 Web API。正如预期的那样,“节点 1”上的 CPU 在测试期间达到 90% 左右,但即使在运行测试 5 分钟后,副本也不会移动以平衡节点。事实上,在某些情况下,客户端调用开始超时。

上述实验是否证明 Service Fabric 不会自动平衡 CPU 负载,还是我遗漏了什么?

最佳答案

首先,健康警告对于集群的平衡没有任何作用。触发平衡的唯一因素是负载报告。

然而,它确实在CPU 上实现平衡。您需要在集群/应用程序 list 中指定要平衡的自己的资源。然后,您可以动态报告应用程序中的负载,但是根据我上周对问题的回答,这是虚拟资源。 Resource usage

关于azure - CPU 上的服务结构自动平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37298924/

相关文章:

.net - 适用于长时间运行任务的 Azure Service Fabric Actor

Azure VNet 和地址空间

azure - 是否可以通过 ARM 模板在 Azure SQL 中配置非管理用户?

java - 在 Java 中生成 SAS token 以下载 Azure 数据存储容器中的文件

azure-service-fabric - Service Fabric 重启应用程序

azure-virtual-machine - 过度配置集群的规模集

azure - Azure Service Fabric 上有许多日志文件

c# - Azure Service Fabric 中的节点之间广播消息

asp.net - 在 Azure 网站上设置 URL 重写的 header - AppCmd 或 applicationhost.config?

azure - 从 Azure 应用服务轻松身份验证获取 Microsoft Graph 的 AccessToken