你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

持久任务计划程序操作吞吐量基准

在内部基准测试中,Durable Task Scheduler 处理工作项的速度比 Azure 存储 提供程序快约五倍,这也是 Durable Functions 应用最常用的后端。

操作是由计划程序处理的任何离散操作,例如启动业务流程、计划活动或处理计时器。 有关完整定义和计费详细信息,请参阅 什么是操作?

基准结果

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

Durable 任务调度程序与 Azure 存储 提供程序在不同工作角色数量下,每秒处理的工作项数的对比如下图所示。 选择Azure 存储提供程序作为比较,因为它是Durable Functions应用的默认和最常用的后端。

柱状图比较通过 1、2 和 4 个 EP2 工作器的 Durable Task Scheduler 与 Azure 存储 提供程序之间每秒处理的工作项数量。Durable Task Scheduler 分别达到每秒约 1,400、2,750 和 3,750 个工作项。

下表汇总了基准中的数值吞吐量值:

配置 Azure 存储 (工作项/秒) 持久任务调度程序 (工作项/秒) 加速
EP2、1 个工人 ~250 ~1,400 ~5.6x
EP2, 2 个工作者 ~430 ~2,750 ~6.4x
EP2, 4 个工作人员 ~830 ~3,750 ~4.5倍

注释

这些结果来自内部基准,旨在提供相对性能的粗略比较。 结果将因工作负荷特征而异。

基准方法

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

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

测试详细信息

测试包含以下条件:

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

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

影响结果的因素

结果可能因以下情况而异:

  • 业务流程和活动的复杂性
  • 并发运行的业务流程数
  • 在业务流程与活动之间传递的数据有效负载大小
  • 虚拟机规格和 SKU
  • 计算与计划程序之间的网络延迟

注释

这些基准由Microsoft在内部运行,不能用作独立测试工具。 它们旨在让你在选择存储后端时大致了解相对性能。

后续步骤