Skip to content

Commit a174a52

Browse files
update quotas
1 parent d7457c0 commit a174a52

File tree

1 file changed

+61
-40
lines changed

1 file changed

+61
-40
lines changed

articles/container-apps/quotas.md

Lines changed: 61 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,69 +4,90 @@ description: Learn about quotas for Azure Container Apps.
44
services: container-apps
55
author: craigshoemaker
66
ms.service: azure-container-apps
7-
ms.custom:
8-
- ignite-2023
97
ms.topic: conceptual
10-
ms.date: 07/02/2024
8+
ms.date: 04/25/2025
119
ms.author: cshoe
1210
---
1311

1412
# Quotas for Azure Container Apps
1513

16-
The following quotas are on a per subscription basis for Azure Container Apps.
14+
Azure Container Apps assigns different quota types to different scopes. In addition to the subscription scope, quotas also apply to region, environment, and application scopes. All quota requests are initiated using Azure Quota Management System (QMS), which features two options for a quota requests.
1715

18-
You can [request a quota increase in the Azure portal](/azure/quotas/quickstart-increase-quota-portal). Any time when the maximum quota is larger than the default quota you can request a quota increase. When requesting a quota increase make sure to pick type _Container Apps_. For more information, see [how to request a limit increase](faq.yml#how-can-i-request-a-quota-increase-).
16+
| Request type| Description | Use for these scopes... | View request status via |
17+
|---|---|---|---|
18+
| [Integrated requests](quota-requests.md#integrated-requests) | Integrated requests are often approved within a few minutes. If your request exceeds a quotas threshold, then a support ticket is generated for a Support Engineer to review the request. Review times can delay approval by up to a few days. | ▪ region<br><br>▪ subscription | [Azure portal](#list-usage-portal) |
19+
| [Manual requests](quota-requests.md#manual-request) | Manual requests always result in generating a support ticket. Approval is often automated, but some requests can take up to a few days for us to process. | ▪ environment | [Azure CLI](#list-usage-cli) |
20+
21+
> [!NOTE]
22+
> Azure Container Apps is a production grade service designed for at-scale workloads. Making a quota request that escalates to the support team isn't out of the norm, but part of the process of managing resources on behalf of our customers. Microsoft makes every effort to accommodate most quota change requests with limited exceptions.
1923
20-
| Feature | Scope | Default Quota | Maximum Quota | Remarks |
21-
|--|--|--|--|--|
22-
| Environments | Region | 15 | Unlimited | Up to 15 environments per subscription, per region. Quota name: Managed Environment Count |
23-
| Environments | Global | 20 | Unlimited | Up to 20 environments per subscription, across all regions. Adjusted through Managed Environment Count quota (usually 20% more than Managed Environment Count) |
24-
| Container Apps | Environment | Unlimited | Unlimited | |
25-
| Revisions | Container app | Unlimited | Unlimited | |
26-
| Replicas | Revision | Unlimited | Unlimited | Maximum replicas configurable are 300 in Azure portal and 1000 in Azure CLI. There must also be enough cores quota available. |
27-
| Session pools | Global | Up to 6 | 10,000 | Maximum number of dynamic session pools per subscription. No official Azure quota yet, please raise support case. |
24+
## View current quotas levels
2825

26+
You can view your quota levels via the [Azure portal](https://ms.portal.azure.com/#view/Microsoft_Azure_Capacity/QuotaMenuBlade/~/myQuotas) and through the Azure CLI, depending on the quota type.
2927

30-
## Workload Profiles Environments
28+
<a name="list-usage-portal">
3129

32-
### Consumption workload profile
30+
When in the portal, select **Azure Container Apps** for the *Provider*.
3331

34-
| Feature | Scope | Default Quota | Maximum Quota | Remarks |
35-
|--|--|--|--|--|
36-
| Cores | Replica | 4 | 4 | Maximum number of cores available to a revision replica. |
37-
| Cores | Environment | 500 | 5,000 | Maximum number of cores the Consumption workload profiles available in the dedicated plan. Calculated by the sum of cores requested by each active replica of all revisions in an environment. Quota name: Managed Environment Consumption Cores |
32+
:::image type="content" source="media/quotas/azure-container-apps-quota-header.png" alt-text="Screenshot of provider and subscription dropdowns in the quota window.":::
3833

39-
### Dedicated workload profiles
34+
Quotas change requests made via manual requests aren't available in the portal. Use the following command to view your quotas on a per environment basis.
4035

41-
| Feature | Scope | Default Quota | Maximum Quota | Remarks |
42-
|--|--|--|--|--|
43-
| Cores | Subscription | 2,000 | Unlimited | Maximum number of dedicated workload profile cores within one subscription |
44-
| Cores | Replica | Maximum cores a workload profile supports | Same as default quota | Maximum number of cores available to a revision replica. |
45-
| Cores | Environment | 500 | 5,000 | The total cores available to all general purpose (D-series) profiles within an environment. Maximum assumes appropriate network size. Quota name: Managed Environment General Purpose Cores |
46-
| Cores | Environment | 500 | 5,000 | The total cores available to all memory optimized (E-series) profiles within an environment. Maximum assumes appropriate network size. Quota name: Managed Environment Memory Optimized Cores |
36+
<a id="list-usage-cmd"></a>
4737

48-
> [!NOTE]
49-
> For GPU enabled workload profiles, you need to request capacity via a [request for a quota increase in the Azure portal](/azure/quotas/quickstart-increase-quota-portal).
38+
```azurecli
39+
az containerapp env list-usages \
40+
--resource-group <RESOURCE_GROUP_NAME> \
41+
--name <ENVIRONMENT_NAME>
42+
```
5043

51-
> [!NOTE]
52-
> [Free trial](https://azure.microsoft.com/offers/ms-azr-0044p) and [Azure for Students](https://azure.microsoft.com/free/students/) subscriptions are limited to one environment per subscription globally and ten (10) cores per environment.
44+
## When to request quota
45+
46+
If an environment or subscription reaches a quota limit, it can have unintended consequences which include:
47+
48+
- Provisioning timing out with a failure
49+
- Scaling restrictions on an app
50+
- Container Apps environment or workload profile creation can fail
5351

52+
Your default quotas depend on factors which include the age and type of your subscription, and service use. If your app could receive thousands of requests per minute, you check your current quota allocations before moving your application into production.
5453

54+
If you encounter a *Maximum Allowed Cores exceeded for the Managed Environment* error, similar to the following example, you need to request a quota increase.
5555

56-
## Consumption plan
56+
```text
57+
Maximum Allowed Cores exceeded for the Managed Environment. Please check https://learn.microsoft.com/en-us/azure/container-apps/quotas for resource limits
58+
```
5759

58-
All new environments use the Consumption workload profile architecture listed above. Only environments created before January 2024 use the consumption plan below.
60+
Other error messages could indicate that you've reached an environment or other quota limit. The Azure Quota Management System allows you to [monitor and alert](azure/quotas/monitoring-alerting) on quota usage to proactively prevent constraints.
5961

60-
| Feature | Scope | Default Quota | Maximum Quota | Remarks |
62+
## Quota types
63+
64+
Azure Container Apps implements different categories of quotas that govern resource allocation across different aspects of your apps. These quotas are organized into basic quotas that control fundamental resource limits, GPU quotas for applications requiring specialized compute capabilities, and dynamic sessions quotas for session-based workloads.
65+
66+
### Basic quotas
67+
68+
The most requested quota changes are listed in the following table. Each scope indicates the reach of each quota. Regionally scoped quotas change on a per region basis. Environment scoped quotas require per environment requests.
69+
70+
| Quota | Scope | Request | View | Remarks |
71+
|---|---|---|---|---|
72+
| Managed Environment Count | Region | [Integrated request](quota-requests.md#integrated-requests) | [Portal](#list-usage-portal) | The number of environments per region. |
73+
| Managed Environment Consumption Cores | Environment | [Manual request](quota-requests.md#manual-request) | CLI | The number of maximum consumption cores the environment is allocated to use. This value is the sum of cores requested by each active replica (across all apps) in an environment. |
74+
| Managed Environment General Purpose Cores | Environment | [Manual request](quota-requests.md#manual-request) | CLI | The total cores available to all general purpose (D-series) profiles within an environment. |
75+
| Managed Environment Memory Optimized Cores | Environment | [Manual request](quota-requests.md#manual-request) | CLI | The total cores available to all memory optimized (E-series) profiles within an environment. |
76+
77+
### GPU quotas
78+
79+
| Quota | Scope | Request | View | Remarks |
6180
|--|--|--|--|--|
62-
| Cores | Replica | 2 | 2 | Maximum number of cores available to a revision replica. |
63-
| Cores | Environment | 100 | 1,500 | Maximum number of cores an environment can accommodate. Calculated by the sum of cores requested by each active replica of all revisions in an environment. Quota name: Managed Environment Consumption Cores |
81+
| Subscription Consumption NCA 100 GPUs | Region | [Integrated request](quota-requests.md#integrated-requests) | [Portal](#list-usage-portal) | The number of maximum consumption A100 GPU cores environments in this region are allocated to use. |
82+
| Subscription Consumption T 4 GPUs | Region | [Integrated request](quota-requests.md#integrated-requests) | [Portal](#list-usage-portal) | The number of maximum consumption T4 GPU cores environments in this region are allocated to use. |
83+
| Subscription NCA 100 GPUs | Region | [Integrated request](quota-requests.md#integrated-requests) | [Portal](#list-usage-portal) | The number of maximum dedicated A100 GPU cores environments across this region are allocated to use. |
6484

85+
### Dynamic sessions quotas
6586

87+
| Quota | Scope | Request | View | Remarks |
88+
|--|--|--|--|--|
89+
| Session pools | Region | [Integrated request](quota-requests.md#integrated-requests) | [Portal](#list-usage-portal) | Maximum number of dynamic session pools per region. |
6690

67-
## Considerations
91+
## Related content
6892

69-
* If an environment runs out of allowed cores:
70-
* Provisioning times out with a failure
71-
* The app may be restricted from scaling out
72-
* If you encounter unexpected capacity limits, open a support ticket
93+
- [Request quota changes for Azure Container Apps](./quota-requests.md)

0 commit comments

Comments
 (0)