Pruebas comparativas de rendimiento de acciones del programador de tareas duraderas

En las pruebas comparativas internas, Durable Task Scheduler procesó elementos de trabajo aproximadamente five veces más rápido que el proveedor de Azure Storage, el back-end más usado habitualmente para las aplicaciones de Durable Functions.

Una acción es cualquier operación discreta procesada por el programador, como iniciar una orquestación, programar una actividad o controlar un temporizador. Para obtener la definición completa y los detalles de facturación, consulte ¿Qué es una acción?

Resultados de punto de referencia

El planificador de tareas duraderas fue comparado con otros proveedores de almacenamiento, entre ellos Azure Storage, MSSQL y Netherite. Los resultados muestran que Durable Task Scheduler proporciona un mejor rendimiento de acciones que las otras opciones, lo que se traduce en más tareas de orquestador, entidad y actividad procesadas en un período de tiempo determinado.

En el gráfico siguiente se muestran los elementos de trabajo procesados por segundo para el programador de tareas Durable frente al proveedor de Azure Storage con diferentes números de trabajadores. Se eligió el proveedor de Azure Storage como comparación porque es el back-end predeterminado y más usado para aplicaciones Durable Functions.

Gráfico de barras que compara los elementos de trabajo por segundo entre Durable Task Scheduler y el proveedor de Azure Storage con 1, 2 y 4 trabajadores EP2. Durable Task Scheduler llega aproximadamente a 1.400, 2.750 y 3.750 elementos de trabajo por segundo respectivamente.

En la tabla siguiente se resumen los valores de rendimiento numéricos de la prueba comparativa:

Configuration Azure Storage (ítems de trabajo/segundo) Programador de tareas duradero (elementos de trabajo/segundo) Aceleración
EP2, 1 trabajador ~250 ~1.400 ~5.6x
EP2, 2 trabajadores ~430 ~2.750 ~6.4x
EP2, 4 trabajadores ~830 ~3,750 ~4.5x

Nota:

Estos resultados proceden de una prueba comparativa interna y están diseñados para proporcionar una comparación aproximada del rendimiento relativo. Los resultados variarán en función de las características de la carga de trabajo.

Metodología de pruebas comparativas

Para probar el rendimiento relativo de los proveedores de back-end, estas pruebas comparativas se ejecutaron mediante una función de orquestador estándar que llama a cinco funciones de actividad, una para cada ciudad, en una secuencia. Cada actividad simplemente devuelve un valor de cadena "Hello, {cityName}!" y no realiza ningún otro trabajo.

La intención de la prueba comparativa es medir la sobrecarga de cada back-end sin hacer nada demasiado complicado. Este tipo de orquestación secuencial se eligió debido a su comúnidad en las aplicaciones de funciones que incluyen Durable Functions.

Detalles de la prueba

La prueba consta de los criterios siguientes:

  • La aplicación de funciones que se usa para esta prueba se ejecuta en una a cuatro instancias de Elastic Premium EP2.
  • El código de orquestación se escribió en C# utilizando el modelo de trabajo aislado .NET en .NET 8.
  • La misma aplicación se usó para todos los proveedores de almacenamiento y el único cambio fue la configuración del proveedor de almacenamiento back-end.
  • La prueba se desencadena mediante un desencadenador HTTP que inicia 5000 orquestaciones simultáneamente.

Una vez completada la prueba, el rendimiento se calcula dividiendo el número total de orquestaciones completadas por el tiempo de ejecución total. La prueba se ejecutó varias veces para cada configuración del proveedor de almacenamiento para asegurarse de que los resultados eran coherentes.

Factores que afectan a los resultados

Los resultados pueden variar en función de:

  • La complejidad de las orquestaciones y actividades
  • Número de orquestaciones que se ejecutan simultáneamente
  • Tamaño de las cargas de datos que se pasan entre orquestaciones y actividades
  • Tamaño y SKU de la máquina virtual
  • Latencia de red entre su cómputo y el programador

Nota:

Estas pruebas comparativas se ejecutaron internamente mediante Microsoft y no están disponibles como un arnés de pruebas independiente. Están diseñados para proporcionarle una idea general del rendimiento relativo al elegir un back-end de almacenamiento.

Pasos siguientes