如何重新启动 Service Fabric 规模集计算机

Posted

技术标签:

【中文标题】如何重新启动 Service Fabric 规模集计算机【英文标题】:How to restart Service Fabric scale set machines 【发布时间】:2019-03-09 20:08:03 【问题描述】:

我们有一个带有 5 个节点的规模集(主要)的服务结构集群。我们的一项服务出现内存泄漏,耗尽了节点上的所有可用内存,最终其他服务失败。例如,一些 Powershell 命令现在不起作用。在 Service Fabric Explorer 中,一切正常,没有任何错误或警告。是否可以重新启动机器?最好的方法是什么,以便我们可以将机器恢复到所有服务都在工作的初始状态?

在规模集缩小时,它会删除索引最高的节点,因此无法按照文档进行扩展,然后删除有故障的节点。

如果我们重启规模集节点一买一,会发生什么?我看到服务结构处理它 - 禁用节点并在之后激活它。但是从银层的文档来看,我们需要有 5 个节点一直运行。那么在重启任何节点之前,我们是否应该扩大规模,再添加一个节点,然后继续重启?

【问题讨论】:

【参考方案1】:

如果故障节点的健康服务仍在运行,最好的方法是先使用Disable-ServiceFabricNode 命令禁用该节点,以便将任何健康服务移出该节点,从而尽可能减少影响。

一旦服务被移动,在某些情况下,只需一个Restart-ServiceFabricNode 命令就可以杀死所有锁定的服务并恢复健康,而无需实际重新启动 VM。

在最后一种情况下,您可能需要通过 Powershell 或 Azure 门户重新启动 VM 以重新启动节点。

如果您的集群在高密度负载下运行,您可能需要先向上扩展,以便为集群重新分配服务的容量。

【讨论】:

以上是关于如何重新启动 Service Fabric 规模集计算机的主要内容,如果未能解决你的问题,请参考以下文章

Service Fabric 中的 Stateless Worker 服务在同一进程中重新启动

在生产中正常重新启动 Service Fabric 应用程序以反映对数据包的更新

启动 Service Fabric 群集时出错 (v 1.5.175)

管理来宾可执行文件依赖项 - 本地 Service Fabric

Service Fabric 本地群集在群集启动时创建 8 GB 文件

使用 MSI 从本地 Service Fabric 群集访问 Key Vault