Skip to content

Commit 4a1f1c9

Browse files
committed
update throttling
1 parent 2b266b7 commit 4a1f1c9

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

articles/azure-resource-manager/resource-manager-request-limits.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ ms.custom: seodec18
1010
---
1111
# Throttling Resource Manager requests
1212

13-
This article helps you understand how Azure Resource Manager throttles requests. It shows you how to determine the remaining requests you have before reaching the limit, and how to respond when you've reached the limit.
13+
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've reached the limit.
1414

15-
Throttling happens at two levels. Azure Resource Manager throttles requests for the subscription and tenant. The resource provider throttles requests for its operations. The following image shows how throttling is applied as a request goes from the user to Azure Resource Manager and the resource provider.
15+
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. The following image shows how throttling is applied as a request goes from the user to Azure Resource Manager and the resource provider.
1616

1717
![Request throttling](./media/resource-manager-request-limits/request-throttling.svg)
1818

@@ -32,13 +32,15 @@ The default throttling limits per hour are shown in the following table.
3232

3333
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.
3434

35-
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, limits are effectively much higher than these limits, as user requests are usually serviced by many different instances. A resource provider might receive more requests than the stated default limits. This condition is important when assessing [resource provider limits](#resource-provider-limits).
35+
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. The requests from a user are usually handled by different instances of Azure Resource Manager.
3636

37-
These limits can be raised per operation through a support request. For the request to be accepted, the resource provider for the operation must support a higher limit. The limit can be either global or per subscription.
37+
You can increase the throttling limit per operation through a support request. For the request to be accepted, the resource provider for the operation must support a higher limit. The limit can be either global or per subscription.
3838

3939
## Resource provider limits
4040

41-
Resource providers apply their own throttling limits. This section discusses the throttling limits of some widely-used resource providers.
41+
Resource providers apply their own throttling limits. Because Resource Manager throttles by principal ID and by instance of Resource Manager, the resource provider might receive more requests than the default limits in the previous section.
42+
43+
This section discusses the throttling limits of some widely used resource providers.
4244

4345
### Storage throttling
4446

@@ -65,6 +67,12 @@ For checking virtual machine instances within a virtual machine scale set, use t
6567

6668
Azure Resource Graph limits the number of requests to its operations. The steps in this article to determine the remaining requests and how to respond when the limit is reached also apply to Resource Graph. However, Resource Graph sets its own limit and reset rate. For more information, see [Throttle in Azure Resource Graph](../governance/resource-graph/overview.md#throttling).
6769

70+
## Error code
71+
72+
When you reach the limit, you receive the HTTP status code **429 Too many requests**. The response includes a **Retry-After** value, which specifies the number of seconds your application should wait (or sleep) before sending the next request. If you send a request before the retry value has elapsed, your request isn't processed and a new retry value is returned.
73+
74+
Some resource providers return 429 to report a temporary problem. The problem could be an overload condition that isn't directly caused by your request. Or, it could represent a temporary error about the state of the target resource or dependent resource. For example, the network resource provider returns 429 with the **RetryableErrorDueToAnotherOperation** error code when the target resource is locked by another operation. To determine if the error comes from throttling or a temporary condition, view the error details in the response.
75+
6876
## Remaining requests
6977

7078
You can determine the number of remaining requests by examining response headers. Read requests return a value in the header for the number of remaining read requests. Write requests include a value for the number of remaining write requests. The following table describes the response headers you can examine for those values:
@@ -80,12 +88,6 @@ You can determine the number of remaining requests by examining response headers
8088
| x-ms-ratelimit-remaining-tenant-resource-requests |Tenant scoped resource type requests remaining.<br /><br />This header is only added for requests at tenant level, and only if a service has overridden the default limit. Resource Manager adds this value instead of the tenant reads or writes. |
8189
| x-ms-ratelimit-remaining-tenant-resource-entities-read |Tenant scoped resource type collection requests remaining.<br /><br />This header is only added for requests at tenant level, and only if a service has overridden the default limit. |
8290

83-
## Error code
84-
85-
When you reach the limit, you receive the HTTP status code **429 Too many requests**. The response includes a **Retry-After** value, which specifies the number of seconds your application should wait (or sleep) before sending the next request. If you send a request before the retry value has elapsed, your request isn't processed and a new retry value is returned.
86-
87-
Some resource providers return 429 to report a temporary problem. The problem could be an overload condition that isn't directly caused by your request. Or, it could represent a temporary error about the state of the target resource or dependent resource. For example, the network resource provider returns 429 with the **RetryableErrorDueToAnotherOperation** error code when the target resource is locked by another operation. To determine if the error comes from throttling or a temporary condition, view the error details in the response.
88-
8991
## Retrieving the header values
9092

9193
Retrieving these header values in your code or script is no different than retrieving any header value.

0 commit comments

Comments
 (0)