4

在研究 Service Fabric 上的资源平衡器和动态负载指标时,我们遇到了一些问题(运行 devbox SDK GA 2.0.135)。
在 Service Fabric Explorer(门户和独立应用程序)中,我们可以看到平衡运行非常频繁,大部分时间几乎立即完成,并且每秒都会发生这种情况。在查看节点或分区上的负载度量信息时,它不会在我们报告负载时更新值。

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

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

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

4

1 回答 1

7

这确实是一个可配置的设置,默认为 5 分钟。其背后的想法是,在 prod 中,您有大量的副本一直在报告负载,因此您希望将它们批量化,这样您就不会将所有这些作为独立消息向集群资源管理器发送垃圾邮件。

你可能是对的,这个值对于本地开发来说太长了。我们将考虑更改本地集群的设置,但与此同时,您可以将以下内容添加到本地集群清单中,以更改我们默认等待的时间。如果那里已经有其他设置,只需添加 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 本地集群管理器并选择“重置本地集群”。这将使用您对模板的更改重新生成本地集群。

于 2016-04-07T18:32:00.013 回答