Benchmarks für den Durchsatz der Durable Task Scheduler-Aktionen

In internen Benchmarks verarbeitete der Durable Task Scheduler Arbeitsaufgaben ungefähr five Times schneller als der Azure Storage-Anbieter – das am häufigsten verwendete Back-End für Durable Functions-Apps.

Eine Aktion ist jeder diskrete Vorgang, der vom Scheduler verarbeitet wird, z. B. das Starten einer Orchestrierung, das Planen einer Aktivität oder das Behandeln eines Zeitgebers. Die vollständigen Definitionen und Abrechnungsdetails finden Sie unter Was ist eine Aktion?

Ergebnisse von Vergleichstests

Der Durable Task Scheduler wurde mit anderen Speicheranbietern verglichen, einschließlich der anbieter Azure Storage, MSSQL und Netherite. Die Ergebnisse zeigen, dass der Durable Task Scheduler einen besseren Aktionsdurchsatz als die anderen Optionen bietet, was bedeutet, dass in einem bestimmten Zeitraum mehr Orchestrator-, Entitäts- und Aktivitätsaufgaben verarbeitet werden.

Das folgende Diagramm zeigt die Anzahl der pro Sekunde verarbeiteten Arbeitselemente des Durable Task Scheduler im Vergleich zur Azure Storage-Implementierung über unterschiedliche Anzahlen von Arbeitern hinweg. Der Azure Storage Anbieter wurde als Vergleich ausgewählt, da es sich um das Standardmäßige und am häufigsten verwendete Back-End für Durable Functions-Apps handelt.

Balkendiagramm, das die Arbeitsaufgaben pro Sekunde zwischen dem Durable Task Scheduler und dem Azure Storage-Anbieter bei 1, 2 und 4 EP2-Mitarbeitern vergleicht. Der Durable Task Scheduler erreicht ca. 1.400, 2.750 und 3.750 Arbeitsaufgaben pro Sekunde.

In der folgenden Tabelle sind die numerischen Durchsatzwerte aus dem Benchmark zusammengefasst:

Konfiguration Azure Storage (Arbeitsvorgänge/Sek.) Beständiger Aufgabenplaner (Aufgaben/Sek.) Beschleunigung
EP2, 1 Arbeitnehmer ~250 ~1.400 ~5,6x
EP2, 2 Arbeitnehmer ~430 ~2.750 ~6,4x
EP2, 4 Arbeitnehmer ~830 ~3.750 ~4,5x

Hinweis

Diese Ergebnisse stammen aus einem internen Benchmark und sollen einen groben Vergleich der relativen Leistung bieten. Ihre Ergebnisse variieren je nach Workloadmerkmalen.

Benchmark-Methodik

Um den relativen Durchsatz der Back-End-Anbieter zu testen, wurden diese Benchmarks mit einer Standard-Orchestratorfunktion ausgeführt, die fünf Aktivitätsfunktionen aufruft, eine für jede Stadt in einer Sequenz. Jede Aktivität gibt einfach den Zeichenfolgenwert "Hello, {cityName}!" zurück und führt keine weiteren Aufgaben aus.

Die Absicht des Benchmarks besteht darin, den Overhead jedes Back-End zu messen, ohne etwas zu kompliziert zu machen. Diese Art der sequenziellen Orchestrierung wurde aufgrund ihrer Gemeinsamkeit in Funktions-Apps ausgewählt, die dauerhafte Funktionen enthalten.

Testdetails

Der Test besteht aus den folgenden Kriterien:

  • Die für diesen Test verwendete Funktions-App wird auf einer bis vier Elastic Premium EP2-Instanzen ausgeführt.
  • Der Orchestrierungscode wurde in C# mit dem .NET Isolated Worker Model auf .NET 8 geschrieben.
  • Die gleiche App wurde für alle Speicheranbieter verwendet, und die einzige Änderung war die Konfiguration des Back-End-Speicheranbieters.
  • Der Test wird mit einem HTTP-Trigger ausgelöst, der 5.000 Orchestrierungen gleichzeitig startet.

Nach Abschluss des Tests wird der Durchsatz berechnet, indem die Gesamtanzahl der abgeschlossenen Orchestrierungen durch die Gesamtausführungszeit dividiert wird. Der Test wurde mehrmals für jede Speicheranbieterkonfiguration ausgeführt, um sicherzustellen, dass die Ergebnisse konsistent waren.

Faktoren, die sich auf Ihre Ergebnisse auswirken

Ihre Ergebnisse können je nach Folgendem variieren:

  • Die Komplexität Ihrer Orchestrierungen und Aktivitäten
  • Die Anzahl der gleichzeitig ausgeführten Orchestrierungen
  • Die Größe der Datenpakete, die zwischen Orchestrierungen und Aktivitäten übergeben werden
  • Größe und SKU des virtuellen Computers
  • Netzwerklatenz zwischen Ihrer Rechenressource und dem Scheduler

Hinweis

Diese Benchmarks wurden intern von Microsoft ausgeführt und sind nicht als eigenständige Testumgebung verfügbar. Sie sollen Ihnen ein allgemeines Gefühl der relativen Leistung geben, wenn Sie ein Speicher-Back-End auswählen.

Nächste Schritte