You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This article describes how Azure Resource Manager throttles requests. It shows you how to track the number of requests that remain before reaching the limit, and how to respond when you reach the limit.
12
12
13
-
Throttling happens at two levels. Azure Resource Manager throttles requests for the subscription and tenant. If the request is under the throttling limits for the subscription and tenant, Resource Manager routes the request to the resource provider. The resource provider applies throttling limits that are tailored to its operations.
14
-
15
-
Requests are initially throttled per principal ID and per Azure Resource Manager instance in the region of the user sending the request. Requests to the Azure Resource Manger instance in the region are also throttled per principal user ID and per hour. When the request is forwarded to the resource provider, requests are throttled per region of the resource rather than per Azure Resource Manager instance in region of the user.
16
-
17
-
> [!NOTE]
18
-
> The limits of a resource provider can differ from the limits of the Azure Resource Manager instance in the region of the user.
19
-
20
-
The following image shows how throttling is applied as a request goes from the user to Azure Resource Manager and the resource provider.
21
-
22
-
:::image type="content" source="./media/request-limits-and-throttling/request-throttling.svg" alt-text="Diagram that shows how throttling is applied as a request goes from the user to Azure Resource Manager and the resource provider.":::
23
-
24
-
## Subscription and tenant limits
25
-
26
-
Every subscription-level and tenant-level operation is subject to throttling limits. Subscription requests are ones that involve passing your subscription ID, such as retrieving the resource groups in your subscription. For example, sending a request to `https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups?api-version=2022-01-01` is a subscription-level operation. Tenant requests don't include your subscription ID, such as retrieving valid Azure locations. For example, sending a request to `https://management.azure.com/tenants?api-version=2022-01-01` is a tenant-level operation.
27
-
28
-
The default throttling limits per hour are shown in the following table.
29
-
30
-
| Scope | Operations | Limit |
31
-
| ----- | ---------- | ------- |
32
-
| Subscription | reads | 12,000 |
33
-
| Subscription | deletes | 15,000 |
34
-
| Subscription | writes | 1,200 |
35
-
| Tenant | reads | 12,000 |
36
-
| Tenant | writes | 1,200 |
37
-
38
-
These limits are scoped to the security principal (user or application) making the requests and the subscription ID or tenant ID. If your requests come from more than one security principal, your limit across the subscription or tenant is greater than 12,000 and 1,200 per hour.
39
-
40
-
These limits apply to each Azure Resource Manager instance. There are multiple instances in every Azure region, and Azure Resource Manager is deployed to all Azure regions. So, in practice, the limits are higher than these limits. Different instances of Azure Resource Manager usually handle the user's requests.
41
-
42
-
The remaining requests are returned in the [response header values](#remaining-requests).
43
-
44
-
## Migrating to regional throttling and token bucket algorithm
13
+
## Regional throttling and token bucket algorithm
45
14
46
-
Starting in 2024, Microsoft is migrating Azure subscriptions to a new throttling architecture. With this change, you experience new throttling limits. The new throttling limits are applied per region rather than per instance of Azure Resource Manager. The new architecture uses a [token bucket algorithm](https://en.wikipedia.org/wiki/Token_bucket) to manage API throttling.
15
+
Microsoft has migrated Azure subscriptions to an updated throttling architecture as of 2024. Throttling limits are now applied per region rather than per instance of Azure Resource Manager. This new architecture uses a [token bucket algorithm](https://en.wikipedia.org/wiki/Token_bucket) to manage API throttling.
47
16
48
17
The token bucket represents the maximum number of requests that you can send for each second. When you reach the maximum number of requests, the refill rate determines how quickly tokens become available in the bucket.
49
18
50
19
These updated limits make it easier for you to refresh and manage your quota.
@@ -68,21 +37,50 @@ For example, suppose you have a bucket size of 250 tokens for read requests and
68
37
69
38
Reading metrics using the `*/providers/microsoft.insights/metrics` API contributes significantly to overall Azure Resource Manager traffic and is a common cause of subscription throttling events. If you use this API heavily, we recommend that you switch to the `getBatch` API. You can query multiple resources in a single REST request, which improves performance and reduces throttling. For more information about converting your operations, see [How to migrate from the metrics API to the getBatch API](/azure/azure-monitor/essentials/migrate-to-batch-api).
70
39
71
-
### How do I know if my subscription uses the new throttling experience?
40
+
### How can I view my throttled requests?
72
41
73
-
After your subscription is migrated to the new throttling experience, the response header shows the remaining requests per minute instead of per hour. Also, your `Retry-After` value shows one minute or less, instead of five minutes. For more information, see [Error code](#error-code).
42
+
To view your throttled requests and other Resource Manager metrics, see [Accessing Azure Resource Manager metrics](/azure/azure-resource-manager/management/monitor-resource-manager#accessing-azure-resource-manager-metrics).
74
43
75
-
### Why is throttling changing to per region rather than per instance?
44
+
### Why is throttling per region rather than per instance?
76
45
77
46
Since different regions have a different number of Resource Manager instances, throttling per instance causes inconsistent throttling performance. Throttling per region makes throttling consistent and predictable.
78
47
79
-
### How does the new throttling experience affect my limits?
48
+
### How does the updated throttling experience affect my limits?
80
49
81
50
You can send more requests. Write requests increase by 30 times. Delete requests increase by 2.4 times. Read requests increase by 7.5 times.
82
51
83
-
### Can I prevent my subscription from migrating to the new throttling experience?
52
+
##Throttling for non-public clouds
84
53
85
-
No, all subscriptions will eventually be migrated.
54
+
Throttling happens at two levels. Azure Resource Manager throttles requests for the subscription and tenant. If the request is under the throttling limits for the subscription and tenant, Resource Manager routes the request to the resource provider. The resource provider applies throttling limits that are tailored to its operations.
55
+
56
+
Requests are initially throttled per principal ID and per Azure Resource Manager instance in the region of the user sending the request. Requests to the Azure Resource Manager instance in the region are also throttled per principal user ID and per hour. When the request is forwarded to the resource provider, requests are throttled per region of the resource rather than per Azure Resource Manager instance in region of the user.
57
+
58
+
> [!NOTE]
59
+
> The limits of a resource provider can differ from the limits of the Azure Resource Manager instance in the region of the user.
60
+
61
+
The following image shows how throttling is applied as a request goes from the user to Azure Resource Manager and the resource provider.
62
+
63
+
:::image type="content" source="./media/request-limits-and-throttling/request-throttling.svg" alt-text="Diagram that shows how throttling is applied as a request goes from the user to Azure Resource Manager and the resource provider.":::
64
+
65
+
## Subscription and tenant limits
66
+
67
+
Every subscription-level and tenant-level operation is subject to throttling limits. Subscription requests are ones that involve passing your subscription ID, such as retrieving the resource groups in your subscription. For example, sending a request to `https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups?api-version=2022-01-01` is a subscription-level operation. Tenant requests don't include your subscription ID, such as retrieving valid Azure locations. For example, sending a request to `https://management.azure.com/tenants?api-version=2022-01-01` is a tenant-level operation.
68
+
69
+
The default throttling limits per hour are shown in the following table.
70
+
71
+
| Scope | Operations | Limit |
72
+
| ----- | ---------- | ------- |
73
+
| Subscription | reads | 12,000 |
74
+
| Subscription | deletes | 15,000 |
75
+
| Subscription | writes | 1,200 |
76
+
| Tenant | reads | 12,000 |
77
+
| Tenant | writes | 1,200 |
78
+
79
+
These limits are scoped to the security principal (user or application) making the requests and the subscription ID or tenant ID. If your requests come from more than one security principal, your limit across the subscription or tenant is greater than 12,000 and 1,200 per hour.
80
+
81
+
These limits apply to each Azure Resource Manager instance. There are multiple instances in every Azure region, and Azure Resource Manager is deployed to all Azure regions. So, in practice, the limits are higher than these limits. Different instances of Azure Resource Manager usually handle the user's requests.
82
+
83
+
The remaining requests are returned in the [response header values](#remaining-requests).
* For more information about limits and quotas, see [Azure subscription and service limits, quotas, and constraints](../../azure-resource-manager/management/azure-subscription-service-limits.md).
249
-
* To learn about handling asynchronous REST requests, see [Track asynchronous Azure operations](async-operations.md).
247
+
* To learn about handling asynchronous REST requests, see [Track asynchronous Azure operations](async-operations.md).
0 commit comments