Service Fabric资源平衡器使用陈旧的报告负载

时间:2016-04-07 09:47:13

标签: metrics azure-service-fabric rebalancing

在调查Service Fabric上的资源平衡器和动态负载指标时,我们遇到了一些问题(运行devbox SDK GA 2.0.135)。 在Service Fabric Explorer(门户网站和独立应用程序)中,我们可以看到平衡是经常运行的most of the time it is done almost instantly,这种情况每秒都会发生。在查看节点或分区上的负载度量信息时,它不会在报告负载时更新值。

我们根据交互(对服务的HTTP请求)发送动态负载报告,大量增加单个分区的报告负载数据。这个尖峰在5分钟内变得可见,此时平衡器实际上开始平衡。这似乎是加载数据刷新的间隔。 上次报告的时间一直在更新,但没有新值。

我们将指标添加到applicationmanifest和clustermanifest以确保它在平衡中使用。 这意味着资源平衡器使用相同的数据5分钟。这是可配置的设置吗?是约束因为它是在devbox上运行的吗? 我们在clustermanifest中尝试了很多变量,但似乎都没有影响这个刷新时间。

如果这不适应,有人可以解释为什么你会使用陈旧数据运行平衡器?为什么选择这5分钟的间隔?

1 个答案:

答案 0 :(得分:5)

这确实是一个可配置的设置,默认值为5分钟。它背后的想法是,在prod中你有大量的副本都报告所有时间的负载,所以你想要批量处理它们,这样你就不会将所有这些作为独立消息的群集资源管理器垃圾邮件。

对于本地开发来说,这个值 way 的时间可能是正确的。我们将考虑更改本地群集的更改,但同时您可以将以下内容添加到本地群集清单中以更改默认情况下等待的时间。如果其中已有其他设置,只需添加SendLoadReportInterval行。该值以秒为单位,您可以相应地进行调整。以下内容会将默认负载报告间隔从5分钟(300秒)更改为1分钟(60秒)。

    <Section Name="ReconfigurationAgent">
        <Parameter Name="SendLoadReportInterval" Value="60" />
    </Section>

请注意,这样做会增加某些系统服务(TANSTAAFL)的负载,并且如果您在生成的或完整的集群清单上运行,请务必在部署之前确保Test-ServiceFabricClusterManifest。如果您正在使用本地开发群集,则部署它的最简单方法可能就是修改群集清单模板(默认情况下为:“C:\ Program Files \ Microsoft SDKs \ Service Fabric \ ClusterSetup \ NonSecure \ ClusterManifestTemplate”。 xml“)然后添加该行,然后右键单击系统托盘中的Service Fabric Local Cluster Manager并选择”Reset Local Cluster“。这将使用您对模板的更改重新生成本地群集。