我们似乎在 Service Fabric 群集中遇到了一个问题,在该群集中,Actor 服务的状态已经增长到临时存储 (D:) 驱动器已满的程度。据我了解,Actor 状态和可靠收集状态被持久保存到此驱动器上的磁盘上。对于一项服务,我们积累了 ActorStateStore 文件占用的 190 GB 空间。
我们假设空间被我们系统中不再需要的大量陈旧actor占用了,因此我们添加了对服务的调用,以使用此处详述的机制清除不需要的actor ( https://docs .microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-lifecycle)。
ActorId actorToDelete = new ActorId(id);
IActorService myActorServiceProxy = ActorServiceProxy.Create(
new Uri("fabric:/MyApp/MyService"), actorToDelete);
await myActorServiceProxy.DeleteActorAsync(actorToDelete, cancellationToken)
我们循环遍历状态中的演员的完整列表,并在我们不想保留的任何内容上调用删除,这将是其中的绝大多数,希望这可以减少我们在临时存储驱动器上的空间消耗。然而,空间似乎并没有被释放。有谁知道这个过程的生命周期是什么?在我们期望驱动器空间出现空闲之前是否有提前期?
是否有可用于释放此驱动器空间的机制,或者执行内务管理以删除我们不再感兴趣的旧演员的最佳方式是什么?