Durable Task Scheduler アクションのスループット ベンチマーク

内部ベンチマークでは、Durable Task Scheduler によって処理された作業項目は、Durable Functions アプリで最も一般的に使用されるバックエンドであるAzure Storage プロバイダーよりも>約

アクションとは、オーケストレーションの開始、アクティビティのスケジュール設定、タイマーの処理など、スケジューラによって処理される個別の操作です。 完全な定義と課金の詳細については、「アクションとは」を参照してください。

ベンチマーク結果

Durable Task Scheduler は、Azure Storage、MSSQL、Netherite プロバイダーなど、他のストレージ プロバイダーに対してベンチマークされました。 結果は、Durable Task Scheduler が他のオプションよりも優れたアクションスループットを提供し、これにより特定の期間に処理されるオーケストレーター、エンティティ、およびアクティビティタスクの数が増えることを示しています。

次のグラフは、Durable Task Scheduler と Azure Storage プロバイダーの 1 秒あたりに処理された作業項目を、さまざまなワーカー数にわたって示しています。 Azure Storage プロバイダーは、Durable Functions アプリの既定で最もよく使用されるバックエンドであるため、比較として選択されました。

 1、2、および 4 つの EP2 ワーカー間の Durable Task Scheduler と Azure Storage プロバイダー間の 1 秒あたりの作業項目数を比較する棒グラフ。Durable Task Scheduler は、それぞれ 1 秒あたり約 1,400、2,750、3,750 個の作業項目に達します。

次の表は、ベンチマークの数値スループット値をまとめたものです。

コンフィギュレーション Azure Storage (作業項目/秒) 耐久性タスクスケジューラ (作業項目/秒) 高速化
EP2、1 作業者 約250 約 1,400 ~5.6x
EP2、2 ワーカー ~430 ~2,750 ~6.4x
EP2、4 ワーカー ~830 ~3,750 最大 4.5 倍

これらの結果は内部ベンチマークに基づくものであり、相対的なパフォーマンスの大まかな比較を提供するためのものです。 結果は、ワークロードの特性によって異なります。

ベンチマーク手法

バックエンド プロバイダーの相対的なスループットをテストするために、これらのベンチマークは、5 つのアクティビティ関数 (都市ごとに 1 つ) を順番に呼び出す標準オーケストレーター関数を使用して実行されました。 各アクティビティは単に "Hello, {cityName}!" 文字列値を返し、他の処理は行いません。

ベンチマークの目的は、複雑すぎずに各バックエンドのオーバーヘッドを測定することです。 この種類のシーケンシャル オーケストレーションは、Durable Functions を含む関数アプリでの共通性のために選択されました。

テストの詳細

テストは、次の条件で構成されます。

  • このテストに使用される関数アプリは 、1 から 4 つの Elastic Premium EP2 インスタンスで実行されます。
  • オーケストレーション コードは、.NET 8 の .NET Isolated worker モデルを使用して C# で記述されました。
  • すべてのストレージ プロバイダーで同じアプリが使用されました。唯一の変更はバックエンド ストレージ プロバイダーの構成でした。
  • テストは、 5,000 個のオーケストレーションを同時に開始する HTTP トリガーを使用してトリガーされます。

テストが完了すると、完了したオーケストレーションの合計数を合計実行時間で割ることによってスループットが計算されます。 結果が一貫していることを確認するために、各ストレージ プロバイダー構成に対してテストが複数回実行されました。

結果に影響を与える要因

結果は次によって異なる場合があります。

  • オーケストレーションとアクティビティの複雑さ
  • 同時に実行されているオーケストレーションの数
  • オーケストレーションとアクティビティの間で渡されるデータ ペイロードのサイズ
  • 仮想マシンのサイズと SKU
  • コンピューティングとスケジューラの間のネットワーク待機時間

これらのベンチマークは、Microsoftによって内部的に実行され、スタンドアロンのテスト ハーネスとしては使用できません。 これらは、ストレージ バックエンドを選択する際の相対的なパフォーマンスの一般的な感覚を提供することを目的としています。

次のステップ