Doorvoerbenchmarks voor acties van de duurzame Task Scheduler

In interne benchmarks verwerkt Durable Task Scheduler werkitems ongeveer vijf keer sneller dan de Azure Storage provider, de meest gebruikte back-end voor Durable Functions apps.

Een actie is een afzonderlijke bewerking die door de scheduler wordt verwerkt, zoals het starten van een orchestratie, het plannen van een activiteit of het verwerken van een timer. Zie Wat is een actie voor de volledige definitie en factureringsgegevens?

Benchmarkresultaten

De Durable Task Scheduler is vergeleken met andere opslagproviders, waaronder de Azure Storage-, MSSQL- en Netherite-providers. In de resultaten ziet u dat de Durable Task Scheduler een betere doorvoer van acties biedt dan de andere opties, die worden omgezet in meer orchestrator-, entiteits- en activiteitstaken die in een bepaalde periode worden verwerkt.

In de volgende grafiek ziet u werkitems die per seconde zijn verwerkt voor de Durable Task Scheduler versus de Azure Storage provider voor verschillende werkrollen. De Azure Storage-provider is gekozen als vergelijking omdat dit de standaard- en meest gebruikte back-end is voor Durable Functions-apps.

Balkdiagram voor het vergelijken van werkitems per seconde tussen Durable Task Scheduler en Azure Storage provider voor 1, 2 en 4 EP2-werkrollen. Durable Task Scheduler bereikt respectievelijk ongeveer 1.400, 2.750 en 3.750 werkitems per seconde.

De volgende tabel bevat een overzicht van de numerieke doorvoerwaarden uit de benchmark:

Configuration Azure Storage (werkitems per seconde) Duurzame Taakscheduler (werkitems per seconde) Speedup
EP2, 1 werknemer ~250 ~1.400 ~5,6x
EP2, 2 werknemers ongeveer 430 ~2.750 ~6,4x
EP2, 4 werknemers ~830 ~3.750 ~4,5x

Opmerking

Deze resultaten zijn afkomstig van een interne benchmark en zijn bedoeld om een ruwe vergelijking van relatieve prestaties te bieden. De resultaten variëren afhankelijk van de kenmerken van de werkbelasting.

Benchmark-methodologie

Om de relatieve doorvoer van de back-endproviders te testen, werden deze benchmarks uitgevoerd met behulp van een standaard orchestratorfunctie die vijf activiteitsfuncties aanroept, één voor elke stad, in een reeks. Elke activiteit retourneert gewoon een tekenreekswaarde 'Hallo, {cityName}!' en doet geen ander werk.

Het doel van de benchmark is om de overhead van elke back-end te meten zonder iets te ingewikkeld te doen. Dit type sequentiële orkestratie is gekozen vanwege de gebruikelijkheid in functietoepassingen die Durable Functions bevatten.

Details van de test

De test bestaat uit de volgende criteria:

  • De functie-app die voor deze test wordt gebruikt, wordt uitgevoerd op één tot vier Elastic Premium EP2-exemplaren.
  • De indelingscode is geschreven in C# met behulp van het .NET Geïsoleerde werkrolmodel op .NET 8.
  • Dezelfde app is gebruikt voor alle opslagproviders en de enige wijziging was de configuratie van de back-endopslagprovider.
  • De test wordt geactiveerd met behulp van een HTTP-trigger waarmee 5000 orchestrations gelijktijdig worden gestart.

Nadat de test is voltooid, wordt de doorvoer berekend door het totale aantal voltooide orkestraties te delen door de totale uitvoeringstijd. De test is meerdere keren uitgevoerd voor elke configuratie van de opslagprovider om ervoor te zorgen dat de resultaten consistent waren.

Factoren die van invloed zijn op uw resultaten

Uw resultaten kunnen variëren, afhankelijk van:

  • De complexiteit van uw samenstellingen en activiteiten
  • Het nummer van orkestraties die gelijktijdig actief zijn
  • De grootte van de gegevenspayloads die worden doorgegeven tussen orchestraties en activiteiten
  • De grootte van de virtuele machine en de SKU
  • Netwerklatentie tussen uw rekenproces en de planner

Opmerking

Deze benchmarks werden intern uitgevoerd door Microsoft en zijn niet beschikbaar als een zelfstandig testharnas. Ze zijn bedoeld om u een algemeen beeld van relatieve prestaties te geven bij het kiezen van een back-end voor opslag.

Volgende stappen