Skip to content

Commit b1305b4

Browse files
authored
Update request-limits-and-throttling.md
Put updated throttling limits at the top, update FAQ
1 parent 0035615 commit b1305b4

File tree

1 file changed

+39
-41
lines changed

1 file changed

+39
-41
lines changed

articles/azure-resource-manager/management/request-limits-and-throttling.md

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -10,46 +10,15 @@ ms.custom: devx-track-arm-template
1010

1111
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.
1212

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
4514

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.
4716

4817
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.
4918

5019
These updated limits make it easier for you to refresh and manage your quota.
5120

52-
The new limits are:
21+
The updated limits are:
5322

5423
| Scope | Operations | Bucket size | Refill rate per sec |
5524
| ----- | ---------- | ----------- | ------------------- |
@@ -68,21 +37,50 @@ For example, suppose you have a bucket size of 250 tokens for read requests and
6837

6938
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).
7039

71-
### How do I know if my subscription uses the new throttling experience?
40+
### How can I view my throttled requests?
7241

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).
7443

75-
### Why is throttling changing to per region rather than per instance?
44+
### Why is throttling per region rather than per instance?
7645

7746
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.
7847

79-
### How does the new throttling experience affect my limits?
48+
### How does the updated throttling experience affect my limits?
8049

8150
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.
8251

83-
### Can I prevent my subscription from migrating to the new throttling experience?
52+
# Throttling for non-public clouds
8453

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).
8684

8785
## Resource provider limits
8886

@@ -246,4 +244,4 @@ msrest.http_logger : 'x-ms-ratelimit-remaining-subscription-writes': '1199'
246244
## Next steps
247245

248246
* 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

Comments
 (0)