Azure Functions Durable Task Scheduler 操作的吞吐量

Durable Task Scheduler 针对其他存储提供程序(包括 Azure 存储、MSSQL 和 Netherite 提供程序)进行了基准测试。 结果显示持久任务计划程序比其他选项提供更好的操作吞吐量,这意味着在给定时间段内,可以处理更多的业务流程协调器、实体和活动任务。

下表显示了运行一系列基准测试的结果,以比较 Durable Task Scheduler 提供程序与默认 Azure 存储提供程序的相对吞吐量。 选择 Azure 存储提供程序作为比较,因为它是 Durable Function 应用的默认和最常用的后端选项。

比较持久任务计划程序与 Azure 存储提供程序的吞吐量的条形图。

注释

图表中显示的结果属于持久任务计划程序功能的早期预览版,其中配置了最低可用的缩放设置。 随着后端提供程序的成熟和越来越接近正式版的推出,结果有望进一步改善。

为了测试后端提供程序的相对吞吐量,这些基准测试是使用标准业务流程协调程序函数运行的,该函数按顺序调用五个活动函数,每个城市对应一个。 每个活动仅返回“Hello, {cityName}!”字符串值,而不执行任何其他工作。

基准测试的目的是测量每个后端的开销,而不会执行任何太过复杂的事情。 之所以选择这种类型的顺序编排,是因为它在包含 Durable Functions 的函数应用程序中很常见。

测试详细信息

测试包含以下条件:

  • 用于此项测试的函数应用在一到四个弹性高级 EP2 实例上运行
  • 业务流程代码是用 C# 编写的,使用了 NET 8 上的 .NET 独立辅助角色模型
  • 所有存储提供程序使用相同的应用,唯一的差别在于后端存储提供程序配置。
  • 测试由 HTTP 触发器触发,该触发器可以同时启动 5,000 个业务流程

测试完成后,通过将已完成的业务流程总数除以总执行时间来计算吞吐量。 对每个存储提供程序配置多次运行测试,以确保结果一致。

此基准表明,Durable Task Scheduler 比 Azure 存储提供程序 快五倍 。 结果可能因以下情况而异:

  • 业务流程和活动的复杂性
  • 并发运行的业务流程数
  • 在业务流程与活动之间传递的数据有效负载大小
  • 其他因素,例如虚拟机大小。

注释

这些结果旨在对测试运行时存储提供程序后端的相对性能进行粗略比较。 不应将这些结果视为最终结论。