gpt4 book ai didi

azure-service-fabric - 对于具有大量 guest 可执行应用程序的集群,应该在 Service Fabric Placement/Load balance 配置中设置什么阈值?

转载 作者:行者123 更新时间:2023-12-02 11:16:16 25 4
gpt4 key购买 nike

对于具有大量 guest 可执行应用程序的群集,应在 Service Fabric Placement/Load balance 配置中设置哪些阈值?
我在 Service Fabric 尝试将太多服务放置到单个节点上的速度过快时遇到了问题。
举一个集群大小的例子,有 2-4 个工作节点类型,每个节点类型有 3-6 个工作节点,每个节点类型可以运行 200 个 guest 可执行应用程序,每个应用程序至少有 2 个副本。节点在运行时能够运行服务,只是 CPU 过高的启动时间。
问题似乎是集群配置中设置的放置和负载平衡规则的阈值或默认值。作为我尝试过的示例:我已打开 InBuildThrottlingEnabled并设置 InBuildThrottlingGlobalMaxValue100 ,我已将 Global Movement Throttle 设置设置为总应用程序计数的不同百分比。
在这一点上,我试图解决两种不同的情况。在这两种情况下,节点都会在一段时间内达到 100%,以便服务结构声明节点已关闭。
第一:从关闭的所有节点启动整个集群,而不会出现大量节点。
第二:单个节点在主机恢复联机后启动的服务过多而不堪重负
这是我在集群上的当前参数:
"Name": "PlacementAndLoadBalance",
“参数”: [
{
"Name": "UseMoveCostReports",
“值”:“真”
},
{
"Name": "PLBRefreshGap",
“值”:“1”
},
{
"Name": "MinPlacementInterval",
“值(value)”:“30.0”
},
{
"Name": "MinLoadBalancingInterval",
“值(value)”:“30.0”
},
{
"Name": "MinConstraintCheckInterval",
“值(value)”:“30.0”
},
{
"Name": "GlobalMovementThrottleThresholdForPlacement",
“值(value)”:“25”
},
{
"Name": "GlobalMovementThrottleThresholdForBalance",
“值(value)”:“25”
},
{
"Name": "GlobalMovementThrottleThreshold",
“值(value)”:“25”
},
{
"Name": "GlobalMovementThrottleCountingInterval",
“值(value)”:“450”
},
{
"Name": "InBuildThrottlingEnabled",
“值”:“假”
},
{
"Name": "InBuildThrottlingGlobalMaxValue",
“值(value)”:“100”
}
]
},

基于 discussion in answer below ,想留下一个图形图像:如果一个节点出现故障,将服务改组到其余节点的行为将导致第二个节点出现故障,如此处所述。绿色节点关闭,然后紫色节点由于被混入的资源过多而关闭。
A graph demonstrating the above. Green goes down, then purple behind it

最佳答案

从SF的角度来看,1和2是同一个问题。另请注意,SF 不会仅仅因为 CPU 消耗量高而驱逐节点。所以:“节点在一段时间内达到 100%,以便服务结构声明节点关闭。”需要更多的解释。机器可能由于其他原因出现故障,或者我想可能是因为负载太高以至于内核级故障检测器无法 ping 其他机器,但这并不常见。
对于配置更改:我会删除所有这些以使用默认值

 {
"Name": "PLBRefreshGap",
"Value": "1"
},
{
"Name": "MinPlacementInterval",
"Value": "30.0"
},
{
"Name": "MinLoadBalancingInterval",
"Value": "30.0"
},
{
"Name": "MinConstraintCheckInterval",
"Value": "30.0"
},
为了使内置 throttle 工作,这需要翻转为真:
     {
"Name": "InBuildThrottlingEnabled",
"Value": "false"
},
此外,由于这些可能是违反约束和放置(不是主动重新平衡),我们需要明确指示 SF 也限制这些操作。 SF 中有此配置,虽然目前没有记录或公开支持,但您可以 see it in the settings .默认情况下,只有平衡受到限制,但您应该能够为所有阶段打开限制,并通过如下所示的方式设置适当的限制。
前两个设置也在 PlacementAndLoadBalancing 中,就像上面的那些。
 {
"Name": "ThrottlePlacementPhase",
"Value": "true"
},
{
"Name": "ThrottleConstraintCheckPhase",
"Value": "true"
},
这些用于设置限制的下一个设置在它们自己的部分中,并且是不同节点类型名称到要为该节点类型节流的限制的映射。
{
"name": "MaximumInBuildReplicasPerNodeConstraintCheckThrottle",
"parameters": [
{
"name": "YourNodeTypeNameHere",
"value": "100"
},
{
"name": "YourOtherNodeTypeNameHere",
"value": "100"
}
]
},
{
"name": "MaximumInBuildReplicasPerNodePlacementThrottle",
"parameters": [
{
"name": "YourNodeTypeNameHere",
"value": "100"
},
{
"name": "YourOtherNodeTypeNameHere",
"value": "100"
}
]
},
{
"name": "MaximumInBuildReplicasPerNodeBalancingThrottle",
"parameters": [
{
"name": "YourNodeTypeNameHere",
"value": "100"
},
{
"name": "YourOtherNodeTypeNameHere",
"value": "100"
}
]
},
{
"name": "MaximumInBuildReplicasPerNode",
"parameters": [
{
"name": "YourNodeTypeNameHere",
"value": "100"
},
{
"name": "YourOtherNodeTypeNameHere",
"value": "100"
}
]
}
我会进行这些更改,然后再试一次。其他信息,例如实际导致节点关闭的原因(通过事件和 SF 健康信息确认)将有助于确定问题的根源。验证在节点上启动 100 个应用程序实例是否确实有效以及这是否是合适的阈值可能也很好。

关于azure-service-fabric - 对于具有大量 guest 可执行应用程序的集群,应该在 Service Fabric Placement/Load balance 配置中设置什么阈值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62558279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com