FabricDCA和MaxDiskQuotaInMB配置

时间:2019-12-04 22:21:27

标签: azure-service-fabric

这个问题有两个部分。首先,什么属于诊断程序的范围--- MaxDiskQuotaInMB configuration?是SvcFab / Log下的所有内容吗?只是SvcFab / Log / AppInstanceData /?对此有更多信息会很好。

第二,如果FabricDCA.exe正在运行,但是SvcFab / Log和SvcFab / Log / AppInstanceData /文件夹超出了我们为其大小设置的限制,那么正确的处理方法是什么?我的团队将它们设置为10,000 MB,但SvcFab / Log通常会占用12-16 GB。

Azure上的群集配置可以识别对MaxDiskQuotaInMB配置的更改,但似乎对节点本身没有影响。我也尝试过重置FabricDCA.exe,到目前为止,它也没有帮助(几个小时后)。

集群中的一个节点的日志占用了太多空间(超出了我们的限制),因此剩余存储空间减少到1 MB。

1 个答案:

答案 0 :(得分:0)

发布更完整的答案,因为它可能对其他人有帮助。

SvcFab / Log文件夹下的大多数内容都应属于MaxDiskQuotaInMB设置的配额之内。有些事情可能不会,但通常会占用磁盘空间的大多数事情都包括在内。还请记住,清理磁盘的任务通常每5分钟运行一次,因此您可能会看到在此时间范围内使用量超出配额。

如果FabricDCA.exe无法正确清除此文件夹中的文件,则可能是您遇到了.Net运行时中的一个错误,该错误中所有system.threading.timers均停止启动,并且由于FabricDCA依赖于这些计时器,因此无法清除磁盘这样做。 这是.NET核心方面跟踪该问题的错误:(https://github.com/dotnet/coreclr/issues/26771)。当机器间歇性地用尽内存时,似乎会发生这种情况。

在Service Fabric 7.0的FabricDCA中添加了自动缓解功能。 手动缓解措施通常是杀死FabricDCA.exe进程。 该过程应重新开始,几分钟后它将再次开始清洁。

您提到您已经尝试杀死FabricDCA.exe,因此上述解决方案可能对您不起作用。在这种情况下,请尝试直接查看Service Fabric群集清单,这可能是您的新配置似乎被ARM模板部署接受的情况,但是新配置未到达群集清单,而清单清单是在这种情况下是真的。