我们有一个服务结构集群,其中包含一个规模集(主要)和 5 个节点。我们的一项服务存在内存泄漏,耗尽了节点上的所有可用内存,最终其他服务失败。例如,某些 Powershell 命令现在不起作用。在 Service Fabric Explorer 中,一切正常,没有任何错误或警告。是否可以重新启动计算机?最好的方法是什么,以便我们可以将计算机恢复到所有服务都正常工作的初始状态?
在规模集中,缩容时会移除索引最高的节点,因此按照文档进行扩容再移除故障节点无济于事。
如果我们一买一重启规模集节点,会发生什么?我看到服务结构处理它 - 禁用节点并随后激活它。但从 Silver Tier 的文档来看,我们需要始终启动并运行 5 个节点。那么在重新启动任何节点之前,我们是否应该扩大规模,再添加一个节点,然后继续重新启动?
最佳答案
如果故障节点的健康服务仍在运行,最好的方法是首先使用 Disable-ServiceFabricNode
禁用该节点。命令,以便将任何健康的服务移出节点,并尽可能减少影响。
一旦服务被移动,在某些情况下,只是一个Restart-ServiceFabricNode
命令可以终止所有锁定的服务并恢复正常,而无需实际重新启动虚拟机。
在最后一种情况下,您可能需要通过 Powershell 或 Azure 门户重新启动虚拟机才能重新启动节点。
如果您的集群在高密度负载上运行,您可能需要首先进行扩展,以便为集群提供容量并重新分配服务。
关于azure-service-fabric - 如何重新启动 Service Fabric 规模集计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52646603/