Cloud performance and scalability. Azure Service Bus and Azure Durable functions - part 2
- May 26, 2023
- 3 min read
Updated: Jun 11, 2023
This is the continuation of an article I have written last month you can find it here: https://www.ideliversoft.com/post/cloud-performance-and-scalability-1
I have measured the performance of the Azure durable functions for these configurations:
Creating an app service scale out plan - manual scale.
Creating an app service scale out plan - custom scale.
Configuring the durable functions parameters for the task hub.
Running it on a consumption plan.
Running it on a premium plan.
and using the following loads:
ššššš šššš:
š·š¶ ššššššššš š” š·š¶ šššššššššš š” š·š¶ ššššššš šššš šššššššš¢
š¼ššššš šššš:
š·š¶ ššššššššš š” š·š¶š¶ šššššššššš š” š·š¶ ššššššš šššš šššššššš¢ šš
š·š¶š¶ ššššššššš š” š·š¶ šššššššššš š” š·š¶ ššššššš ššš šššššššš¢
š·ššš šššš:
š·š¶ ššššššššš š” š·š¶š¶š¶ šššššššššš š” š·š¶ ššššššš šššš šššššššš¢ šš
š·š¶š¶š¶ ššššššššš š” š·š¶ šššššššššš š” š·š¶ ššššššš ššš šššššššš¢
Automatic scaling - scale out the App Service Plan
As with all Azure Functions running in the Consumption and Elastic Premium plans, Durable Functions supports auto-scale via the Azure Functions scale controller.
The Scale Controller monitors how long messages and tasks have to wait before they are processed. Based on these latencies it can decide whether to add or remove workers.
You can read more about it here:

Scaling the number of VM instances
The app service plan can be scaled out by increasing the number of VM machines instances on which the functions executes.
The instance count slider can be set to a value between 1 to 30 for the p2v2 app service plan.

Custom scaling plan using metrics for the Azure durable function's storage account's queues
You can create a custom autoscale plan and define a number of rules for each control or worker-item queue.
Each rule will increase or decrease the VM instances count based on several metric thresholds.
The number of scaled out / in instances during processing the load.

Findings
1)
š° šššššššš šš”ššššššš, ššššššš š ššš ššššššš šššššš šš ššš šššš.šššš šššš ššš šš ššššššš šššš ššš ššš ššš ššššššš šššš šššššššš ššš šššššš ššš ššššššš:
Consumption plan
ššššš šššš - š·:š¹š¹šššš
šššššš šššš
šššš š· (š·š¶ ššššššššš š” š·š¶š¶ šššššššššš š” š·š¶ ššššššš) - š»:šøšø šššš
šššš šø (š·š¶š¶ ššššššššš š” š·š¶ šššššššššš š” š·š¶ ššššššš) - šø:š»š» šššš
šššš šššš
šššš š· - š·š¼:šøšæ šššš
šššš šø - š¾:š¶šø šššš
2)
šššš ššššššš šš š²šššššššššš šššš, šššššššššš ššš ššš”š²šššššššššš°ššššššš¢šµšššššššš ššš ššš”š²šššššššššš¾ššššššššššššµšššššššš šššššš ššššš·š¶ šš š·š¶š¶ šš š·š¶š¶š¶ šš ššš šššš.šššš šššš, šššš ššš ššššššš š šššššššššššš šš”ššššššš šššš ššššššššššš šššš šššššš¢ ššš šš ššš šššš šššš ššš šššššš šš šššššššššš ššššššššš ššš šššššššššš ššš ššš”šš (ššš ššš šššššššš ššššššš).
3)
šššš ššššššš šš ššš š³šššššššš šš šæšššššš šæššš ššššššš šš ššš šššššššššš šš ššš šššš.šššš šššš šš ššššššš ššš ššš ššš ššššššš šššš ššš ššššššššš š šššššššššššš šššš ššššššššššš.
šµšš š premium plan baseline šš”ššššššš šššššš, ššššššš š ššš ššššššš šššššš šš ššš šššš.šššš šššš ššš š šššššš š š¼ šššššššš, ššš ššššššš ššš š šššš šššš ššš šššššš¢ ššš:
ššššš šššš : š·:š¹š½ šššš
šššššš šššš: šššš š· - š·š¼:šŗš» šššš
šššššš šššš: šššš šø - š·š¼:š¹šŗ šššš
šššš šššš: šššš š· - š»š»:š¹šø šššš
šššš šššš: šššš šø - š¹šæš» ššššššššš ššššššššš ššš šš š·š¶š¶š¶ šš š¼š» šššš
4)
šššš ššššššš š ššš š šššššššš ššššššššššššš - šššššš ššššššš ššš šš šš š šæšššššš šæššš š ššš šššššš šššššššššš šššššššššš šš ššš šššš.šššš - ššš ššššššš ššš šššš šššš šš”šššš šš¢ šš”šššššššššš ššššššššš ššš šššš ššššššš, š ššššš š· šššššš šš šššš ššš ššš š šššš ššššššš (šššš šš, ššššššš š·š¶ ššššššššš š” š·š¶š¶š¶ šššššššššš š” š·š¶ ššššššš šššš šššššššš¢ šš š·š¶š¶š¶ ššššššššš š” š·š¶ šššššššššš š” š·š¶ ššššššš ššš šššššššš¢).
Function timeout
One of the reasons the functions needs to be well tuned and have a fast execution is because they have a limited duration span.
The whole process should run in less than 10 minutes for the Consumption Plan and less than 60 mins on the Premium Plan.

In the next article, that will be the last part of this series, I will provide a few tips recommended by Microsoft for configuring the Azure Durable functions values in the host.json file.

Comments