对于具有大量来宾可执行应用程序的集群,应在 Service Fabric 放置/负载平衡配置中设置哪些阈值?
我在 Service Fabric 尝试将太多服务太快地放置到单个节点上时遇到问题。
举一个集群大小的例子,有 2-4 个工作节点类型,每个节点类型有 3-6 个工作节点,每个节点类型可以运行 200 个来宾可执行应用程序,每个应用程序至少有 2 个副本。节点在运行时能够运行服务,只是CPU太高的启动时间。
问题似乎是集群配置中设置的放置和负载平衡规则的阈值或默认值。作为我尝试过的示例:我已打开InBuildThrottlingEnabled
并设置InBuildThrottlingGlobalMaxValue
为100
,我已将 Global Movement Throttle 设置设置为总应用程序计数的各种百分比。
在这一点上,我试图解决两种不同的场景。在这两种情况下,节点都会在一段时间内达到 100%,以便服务结构将节点声明为关闭。
1st:从所有节点关闭开始整个集群,而不会压倒节点。
第二:主机重新上线后启动的服务过多,单个节点不堪重负
这是我在集群上的当前参数:
"Name": "PlacementAndLoadBalancing", “参数”: [ { "Name": "UseMoveCostReports", “值”:“真” }, { "名称": "PLBRefreshGap", “价值”:“1” }, { "Name": "MinPlacementInterval", “价值”:“30.0” }, { "名称": "MinLoadBalancingInterval", “价值”:“30.0” }, { "名称": "MinConstraintCheckInterval", “价值”:“30.0” }, { "Name": "GlobalMovementThrottleThresholdForPlacement", “价值”:“25” }, { "Name": "GlobalMovementThrottleThresholdForBalance", “价值”:“25” }, { "Name": "GlobalMovementThrottleThreshold", “价值”:“25” }, { "Name": "GlobalMovementThrottleCountingInterval", “价值”:“450” }, { "Name": "InBuildThrottlingEnabled", “值”:“假” }, { "Name": "InBuildThrottlingGlobalMaxValue", “价值”:“100” } ] },
根据下面答案中的讨论,想要留下一个图形图像:如果一个节点出现故障,将服务改组到其余节点的行为将导致第二个节点出现故障,如此处所述。绿色节点关闭,然后紫色节点由于过多的资源被洗牌而关闭。