Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Em benchmarks internos, o Durable Task Scheduler processava itens de trabalho aproximadamente cinco vezes mais rápido do que o fornecedor de Armazenamento do Azure — o backend mais utilizado para Durable Functions aplicações.
Uma ação é qualquer operação discreta processada pelo agendador, como iniciar uma orquestração, agendar uma atividade ou gerir um temporizador. Para a definição completa e detalhes de faturação, veja O que é uma ação?
Resultados de avaliação comparativa
O Durable Task Scheduler foi comparado com outros fornecedores de armazenamento, incluindo os fornecedores Armazenamento do Azure, MSSQL e Netherite. Os resultados mostram que o Durable Task Scheduler oferece melhor rendimento de ações do que as outras opções, o que se traduz em mais tarefas de orquestrador, entidade e atividade a serem processadas num determinado período de tempo.
O gráfico seguinte mostra os itens de trabalho processados por segundo para o Durable Task Scheduler em comparação com o fornecedor do Armazenamento do Azure em diferentes contagens de trabalhadores. O fornecedor Armazenamento do Azure foi escolhido como comparação porque é o backend padrão e mais utilizado para aplicações Durable Functions.
Gráfico de barras comparando itens de trabalho por segundo entre o Planificador de Tarefas Duráveis e o fornecedor de Armazenamento do Azure entre 1, 2 e 4 trabalhadores EP2. O Planificador de Tarefas Duráveis atinge aproximadamente 1.400, 2.750 e 3.750 itens de trabalho por segundo, respetivamente.
A tabela seguinte resume os valores numéricos de rendimento do benchmark:
| Configuração | Armazenamento do Azure (itens de trabalho/seg) | Agendador de Tarefas Durável (itens de trabalho/segundo) | Aumento de Velocidade |
|---|---|---|---|
| EP2, 1 trabalhador | ~250 | ~1.400 | ~5,6x |
| EP2, 2 trabalhadores | ~430 | ~2.750 | ~6,4x |
| EP2, 4 trabalhadores | ~830 | ~3.750 | ~4,5x |
Observação
Estes resultados provêm de um benchmark interno e destinam-se a fornecer uma comparação aproximada do desempenho relativo. Os seus resultados vão variar consoante as características da carga de trabalho.
Metodologia de referência
Para testar a taxa de transferência relativa dos provedores de back-end, esses benchmarks foram executados usando uma função de orquestrador padrão que chama cinco funções de atividade, uma para cada cidade, em uma sequência. Cada atividade simplesmente retorna um valor de string "Olá, {cityName}!" e não faz nenhum outro trabalho.
A intenção do benchmark é medir a sobrecarga de cada backend sem fazer nada muito complicado. Este tipo de orquestração sequencial foi escolhido devido à sua comumidade em aplicações de funções que incluem o Durable Functions.
Detalhes do teste
O teste consiste nos seguintes critérios:
- O aplicativo de função usado para esse teste é executado em uma a quatro instâncias do Elastic Premium EP2.
- O código de orquestração foi escrito em C# usando o modelo de trabalhador isolado .NET em .NET 8.
- O mesmo aplicativo foi usado para todos os provedores de armazenamento, e a única alteração foi a configuração do provedor de armazenamento de back-end.
- O teste é acionado usando um gatilho HTTP que inicia 5.000 orquestrações simultaneamente.
Após a conclusão do teste, a taxa de transferência é calculada ao dividir o número total de orquestrações concluídas pelo tempo total de execução. O teste foi executado várias vezes para cada configuração do provedor de armazenamento para garantir que os resultados fossem consistentes.
Fatores que afetam os seus resultados
Os seus resultados podem variar dependendo de:
- A complexidade de suas orquestrações e atividades
- O número de orquestrações em execução simultânea
- O tamanho das cargas úteis de dados que estão a ser transmitidas entre orquestrações e atividades
- O tamanho da máquina virtual e o SKU
- Latência de rede entre o teu cálculo e o agendador
Observação
Estes benchmarks foram executados internamente pela Microsoft e não estão disponíveis como harness de teste autónomo. Destinam-se a dar-te uma noção geral do desempenho relativo ao escolher um backend de armazenamento.