Skip to content

Commit f68dce8

Browse files
committed
workaround for reducing cold start
1 parent e830a3a commit f68dce8

File tree

5 files changed

+15
-3
lines changed

5 files changed

+15
-3
lines changed

articles/azure-functions/durable/durable-functions-azure-storage-provider.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,13 @@ If you are not seeing the throughput numbers you expect and your CPU and memory
280280
> [!TIP]
281281
> In some cases you can significantly increase the throughput of external events, activity fan-in, and entity operations by increasing the value of the `controlQueueBufferThreshold` setting in **host.json**. Increasing this value beyond its default causes the Durable Task Framework storage provider to use more memory to prefetch these events more aggressively, reducing delays associated with dequeueing messages from the Azure Storage control queues. For more information, see the [host.json](durable-functions-bindings.md#host-json) reference documentation.
282282
283+
### Flex Consumption Plan
284+
The [Flex Consumption Plan](../flex-consumption-plan.md) is a new Azure Functions hosting plan that builds on the old Consumption plan's serverless billing model while providing useful features such as private networking, instance memory size selection, and more.
285+
286+
When using the Azure Storage provider for your Durable Functions apps running on the Flex Consumption plan, the following is recommended to ensure the optimal performance:
287+
* Set the [Always Ready](../flex-consumption-how-to.md#set-always-ready-instance-counts) instance count for `durable` group to `1`
288+
* Reduce [queue polling](./durable-functions-azure-storage-provider.md#queue-polling) interval to 10 seconds or less. (Note that lowering the interval could cause a small increase in your Azure Storage cost.)
289+
283290
### High throughput processing
284291

285292
The architecture of the Azure Storage backend puts certain limitations on the maximum theoretical performance and scalability of Durable Functions. If your testing shows that Durable Functions on Azure Storage won't meet your throughput requirements, you should consider instead using the [Netherite storage provider for Durable Functions](durable-functions-storage-providers.md#netherite).

articles/azure-functions/durable/durable-functions-storage-providers.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ There are many significant tradeoffs between the various supported storage provi
196196
| Price-performance configurable? | ❌ No | ✅ Yes (Event Hubs TUs and CUs) | ✅ Yes (SQL vCPUs) |
197197
| Disconnected environment support | ❌ Azure connectivity required | ❌ Azure connectivity required | ✅ Fully supported |
198198
| Identity-based connections | ✅ Fully supported |❌ Not supported | ⚠️ Requires runtime-driven scaling |
199+
| [Flex Consumption plan](../flex-consumption-plan.md) | ✅ Fully supported |❌ Not supported | ❌ Not supported |
199200

200201
## Next steps
201202

articles/azure-functions/durable/quickstart-mssql.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ Durable Functions supports several [storage providers](durable-functions-storage
1616

1717
> [!NOTE]
1818
>
19-
> - The MSSQL back end was designed to maximize application portability and control over your data. It uses [Microsoft SQL Server](https://www.microsoft.com/sql-server/) to persist all task hub data so that users get the benefits of a modern, enterprise-grade database management system (DBMS) infrastructure. To learn more about when to use the MSSQL storage provider, see the [storage providers overview](durable-functions-storage-providers.md).
19+
> - The MSSQL backend was designed to maximize application portability and control over your data. It uses [Microsoft SQL Server](https://www.microsoft.com/sql-server/) to persist all task hub data so that users get the benefits of a modern, enterprise-grade database management system (DBMS) infrastructure. To learn more about when to use the MSSQL storage provider, see the [storage providers overview](durable-functions-storage-providers.md).
2020
>
2121
> - Migrating [task hub data](durable-functions-task-hubs.md) across storage providers currently isn't supported. Function apps that have existing runtime data start with a fresh, empty task hub after they switch to the MSSQL back end. Similarly, the task hub contents that are created by using MSSQL can't be preserved if you switch to a different storage provider.
22+
>
23+
> - The MSSQL backend is currently **not** supported for Durable Functions apps running on the [Flex Consumption plan](../flex-consumption-plan.md).
2224
2325
## Prerequisites
2426

articles/azure-functions/durable/quickstart-netherite.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Durable Functions offers several [storage providers](durable-functions-storage-p
1919
> - Netherite was designed and developed by [Microsoft Research](https://www.microsoft.com/research) for [high throughput](https://microsoft.github.io/durabletask-netherite/#/scenarios) scenarios. In some [benchmarks](https://microsoft.github.io/durabletask-netherite/#/throughput?id=multi-node-throughput), throughput increased by more than an order of magnitude compared to the default Azure Storage provider. To learn more about when to use the Netherite storage provider, see the [storage providers](durable-functions-storage-providers.md) documentation.
2020
>
2121
> - Migrating [task hub data](durable-functions-task-hubs.md) across storage providers currently isn't supported. Function apps that have existing runtime data start with a fresh, empty task hub after they switch to the Netherite back end. Similarly, the task hub contents that are created by using MSSQL can't be preserved if you switch to a different storage provider.
22+
>
23+
> - The Netherite backend is currently **not** supported for Durable Functions apps running on the [Flex Consumption plan](../flex-consumption-plan.md).
2224
2325
## Prerequisites
2426

articles/azure-functions/flex-consumption-plan.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Functions Flex Consumption plan hosting
33
description: Running your function code in the Azure Functions Flex Consumption plan provides virtual network integration, dynamic scale (to zero), and reduced cold starts.
44
ms.service: azure-functions
55
ms.topic: concept-article
6-
ms.date: 08/22/2024
6+
ms.date: 11/01/2024
77
ms.custom: references_regions, build-2024
88
# Customer intent: As a developer, I want to understand the benefits of using the Flex Consumption plan so I can get the scalability benefits of Azure Functions without having to pay for resources I don't need.
99
---
@@ -137,7 +137,7 @@ In Flex Consumption, many of the standard application settings and site configur
137137
Keep these other considerations in mind when using Flex Consumption plan during the current preview:
138138

139139
+ **Host**: There is a 30 seconds timeout for the app initialization. If your function app takes longer than 30 seconds to start you will see gRPC related System.TimeoutException entries. This timeout will be configurable and a more clear exception will be implemented as part of [this host work item](https://github.com/Azure/azure-functions-host/issues/10482).
140-
+ **Durable Functions**: Due to the per function scaling nature of Flex Consumption, to ensure the best performance for Durable Functions we recommend setting the [Always Ready instance count](./flex-consumption-how-to.md#set-always-ready-instance-counts) for the `durable` group to `1`. Also, with the Azure Storage provider, consider reducing the [queue polling interval](./durable/durable-functions-azure-storage-provider.md#queue-polling) to 10 seconds or less. Only Azure Storage is supported as a backend storage providers for Flex Consumption hosted durable functions.
140+
+ **Durable Functions**: Due to the per function scaling nature of Flex Consumption, to ensure the best performance for Durable Functions we recommend setting the [Always Ready instance count](./flex-consumption-how-to.md#set-always-ready-instance-counts) for the `durable` group to `1`. Also, with the Azure Storage provider, consider reducing the [queue polling interval](./durable/durable-functions-azure-storage-provider.md#queue-polling) to 10 seconds or less. Note that lowering queue polling could cause a small increase in Azure Storage cost. Only Azure Storage is supported as a backend storage provider for Flex Consumption hosted durable functions.
141141
+ **VNet Integration** Ensure that the `Microsoft.App` Azure resource provider is enabled for your subscription by [following these instructions](/azure/azure-resource-manager/management/resource-providers-and-types#register-resource-provider). The subnet delegation required by Flex Consumption apps is `Microsoft.App/environments`.
142142
+ **Triggers**: All triggers are fully supported except for Kafka and Azure SQL triggers. The Blob storage trigger only supports the [Event Grid source](./functions-event-grid-blob-trigger.md). Non-C# function apps must use version `[4.0.0, 5.0.0)` of the [extension bundle](./functions-bindings-register.md#extension-bundles), or a later version.
143143
+ **Regions**: Not all regions are currently supported. To learn more, see [View currently supported regions](flex-consumption-how-to.md#view-currently-supported-regions).

0 commit comments

Comments
 (0)