Benchmark della velocità effettiva delle azioni del pianificatore di attività durevole

Nei benchmark interni, Durable Task Scheduler ha elaborato elementi di lavoro approssimativamente five tempi più veloci rispetto al provider di Archiviazione di Azure, il back-end più comunemente usato per le app Durable Functions.

Un'azione è un'operazione discreta elaborata dall'utilità di pianificazione, ad esempio l'avvio di un'orchestrazione, la pianificazione di un'attività o la gestione di un timer. Per informazioni dettagliate sulla definizione completa e sulla fatturazione, vedere Che cos'è un'azione?

Risultati benchmark

Il Scheduler di attività durevoli è stato confrontato con altri fornitori di storage, inclusi Archiviazione di Azure, MSSQL e Netherite. I risultati mostrano che il pianificatore di attività durevole offre una velocità effettiva delle azioni migliore rispetto alle altre opzioni, il che si traduce in un maggior numero di attività di orchestrazione, entità e attività elaborate in un determinato periodo di tempo.

Il grafico seguente mostra il numero di elementi di lavoro elaborati al secondo dal Durable Task Scheduler rispetto al provider di Archiviazione di Azure con diversi numeri di istanze di lavoro. Il provider di Archiviazione di Azure è stato scelto come confronto perché è il back-end predefinito e più comunemente usato per le app Durable Functions.

Grafico a barre che confronta gli elementi di lavoro al secondo tra Durable Task Scheduler e il provider di Archiviazione di Azure con 1, 2 e 4 worker EP2. Durable Task Scheduler raggiunge circa 1.400, 2.750 e 3.750 elementi di lavoro al secondo rispettivamente.

La tabella seguente riepiloga i valori di velocità effettiva numerica del benchmark:

Configuration Archiviazione di Azure (elementi di lavoro/sec) Pianificatore di attività durevole (elementi di lavoro/sec) Accelerazione
EP2, 1 lavoratore ~250 ~1.400 ~5.6x
EP2, 2 lavoratori circa 430 ~2.750 ~6.4x
EP2, 4 lavoratori ~830 ~3.750 ~4,5x

Annotazioni

Questi risultati provengono da un benchmark interno e sono destinati a fornire un confronto approssimativo delle prestazioni relative. I risultati variano a seconda delle caratteristiche del carico di lavoro.

Metodologia di benchmark

Per testare la velocità effettiva relativa dei provider back-end, questi benchmark sono stati eseguiti usando una funzione dell'agente di orchestrazione standard che chiama cinque funzioni di attività, una per ogni città, in una sequenza. Ogni attività restituisce semplicemente un valore stringa "Hello, {cityName}!" e non esegue altre operazioni.

Lo scopo del benchmark è misurare il sovraccarico di ogni back-end senza eseguire operazioni troppo complesse. Questo tipo di orchestrazione sequenziale è stato scelto a causa della sua frequente utilizzo nelle app di funzioni che includono Durable Functions.

Dettagli del test

Il test è costituito dai criteri seguenti:

  • L'app per le funzioni usata per questo test viene eseguita su una o quattro istanze di Elastic Premium EP2.
  • Il codice di orchestrazione è stato scritto in C# utilizzando il modello .NET Isolated Worker su .NET 8.
  • La stessa app è stata usata per tutti i provider di archiviazione e l'unica modifica era la configurazione del provider di archiviazione back-end.
  • Il test viene attivato usando un trigger HTTP che avvia contemporaneamente 5.000 orchestrazioni.

Al termine del test, la velocità effettiva viene calcolata dividendo il numero totale di orchestrazioni completate in base al tempo di esecuzione totale. Il test è stato eseguito più volte per ogni configurazione del provider di archiviazione per garantire che i risultati siano coerenti.

Fattori che influiscono sui risultati

I risultati possono variare a seconda di:

  • Complessità delle orchestrazioni e delle attività
  • Numero di orchestrazioni in esecuzione simultanea
  • Dimensione dei payload di dati trasmessi tra orchestrazioni e attività
  • Dimensioni e SKU della macchina virtuale
  • Latenza di rete tra le risorse di calcolo e il programma di pianificazione

Annotazioni

Questi benchmark sono stati eseguiti internamente da Microsoft e non sono disponibili come test harness autonomo. Sono progettati per offrire un'idea generale delle prestazioni relative quando si sceglie un back-end di archiviazione.

Passaggi successivi