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 服务实例回收未使用的内存