Service Fabric Actor 计时器性能影响

Posted

技术标签:

【中文标题】Service Fabric Actor 计时器性能影响【英文标题】:Service Fabric Actor Timers Performance Implications 【发布时间】:2018-01-03 19:01:55 【问题描述】:

我们正在考虑可能将 Service Fabric Actor Timers 用于某种 TTL 管理服务。它有可能同时拥有 100 数十万个演员计时器。我们担心一次运行这么多 Actor 定时器的开销,但似乎没有任何关于 Actor 定时器的性能影响或底层机制的文档。任何指导将不胜感激。

【问题讨论】:

好吧,既然演员计时器are just using regular timers 它并不是真正特定于服务结构/演员的。 它们不仅仅是普通的计时器。它们的构建是为了尊重他们注册的参与者的基于回合的并发性。因此,根据参与者正在处理的其他流量的多少,肯定会有性能考虑 @Jessie Carter 演员的责任只是在它 TTLs 时发出警报并且有能力被取消。 【参考方案1】:

据我所知,Actor 的计时器在底层使用了一个轻量级的“System.Threading.Timer”,沿着一个委托创建,该委托有一个代码,以便在时机成熟时向您的“唤醒”回调发送调用。并且似乎调度就像任何其他传入请求一样发生,所以我会说带有委托的几个额外类是拥有 SF Actor Timer 的成本。

当然,如果您需要在计时器的回调中执行大量工作,那么它将锁定您的演员,因此这还取决于将阻止多少请求以及您可以多快离开回调。

【讨论】:

以上是关于Service Fabric Actor 计时器性能影响的主要内容,如果未能解决你的问题,请参考以下文章

Service Fabric Actor 订阅 Azure 服务总线主题

从 .Net Core Stateless Service 调用 .Net 框架 Service Fabric Actor

同一个 Service Fabric Actor 应用程序中是不是有大量的 Actor?

Service Fabric 运行时未从 Actor 服务实例回收未使用的内存

通过 URI 调用 Service Fabric Actor Service 时找不到 V2Listener

Service Fabric Actor State:在持久模式下从哪里读取状态?