This document lists the allocation quotas that apply to Compute Engine.
Allocation quotas
Allocation quotas, also known as resource quotas, define the number ofresources that your project has access to. Compute Engine enforcesallocation quotas on resource usage for various reasons. For example, quotashelp to protect the community of Google Cloud users by preventingunforeseen spikes in usage. Google Cloud also offersfree trial quotas that provide limited access for projects to help you explore Google Cloudon a free trial basis.
Not all projects have the same quotas. As you increasingly useGoogle Cloud over time, your quotas might increase accordingly. If youexpect a notable upcoming increase in usage, you can proactivelyrequest quota adjustments from theQuotas page in theGoogle Cloud console.
For information specific to quotas for rate limits for the Compute Engine API,see API quota.
Quotas and resource availability
Allocation quotas are the maximum number of resources you can create of thatresource type, if those resources are available. Quotas don't guaranteethat resources are always available. If a resource is not available,or if the region you choose is out of the resource, you can't createnew resources of that type, even if you have remaining quota in your regionor project. For example, you might still have quota to create external IPaddresses in us-central1
, but there might not be available IP addresses inthat region.
Similarly, even if you have a regional quota, a resource might not be availablein a specific zone. For example, you might have quota to create VM instances inregion us-central1
, but you might not be able to create VM instances in thezone us-central1-a
if the zone is depleted. In such cases, try creating thesame resource in another zone, such as us-central1-f
. To learn more about youroptions if zonal resources are depleted, see the documentation fortroubleshooting resource availability.
Allocation quotas
When planning your VM instance needs, you should consider several quotas thataffect how many VM instances you can create.
Regional and global quotas
VM quotas are managed at the regional level. VM instance, instance group,disk quotas, and CPU can be consumed by any VM in the region, regardless ofzone. For example, CPU quota is a regional quota, so there is a different limitand usage count for each region. To launch an n2-standard-16
instance in anyzone in the us-central1
region, you need enough quota for at least 16 CPUsin us-central1
.
Networking and load balancing quotas are required to create firewalls, loadbalancers, networks, and VPNs. These quotas are global quotas that don't dependon a region. Any region can use a global quota. For example, in-use and staticexternal IP addresses assigned to load balancers and HTTP and HTTPS proxiesconsume global quotas.
VM instances
The VM instances quota is a regional quota and limits the number of VM instancesthat can exist in a given region, regardless of whether the VM is running. Thisquota is visible in the Google Cloud console on the Quotas page.Compute Engine automatically sets this quota to be 10 times your regularCPU quota. You don't need to request this quota. If you need quota for more VMinstances, request more CPUs because having more CPUs increases VMinstance quota. The quota applies to both running and non-running VMs, and tonormal and preemptible instances.
In the Google Cloud console, go to the Quotas page.
Go to Quotas
In the filter_list Filter list,select the following options:
- For Service, select Compute Engine API.
- For Type, select Quota.
- For Name, select VM instances.
- Optional: For Metric, select any otherCPU or Committed CPU quota namethat you want to filter.
Optional: To sort the table by region, click theDimensions (e.g. location) column.
Select the regions whose quota you want to change.
Click edit Edit.
Complete the form.
Click Submit Request.
Instance groups
To use instance groups, you must have available quota for all the resourcesthat the group uses (for example, CPU quota) and available quota forthe group resource itself. Depending on the type of group that you create, thefollowing group resource usage quotas apply:
Service type | Service quota |
---|---|
Regional (multi-zone) managed instance group | Regional instance group managers |
Zonal (single-zone) managed instance group | Both of:
|
Unmanaged (single-zone) instance group | Instance groups |
Regional (multi-zone) autoscaler | Regional autoscalers |
Zonal (single-zone) autoscaler | Autoscalers |
Disk quotas
The following Persistent Disk, Hyperdisk, and Local SSD quotas applyon a per-region basis:
Hyperdisk Balanced Capacity (GB)
. This quota is the total combined size ofHyperdisk Balanced disks that you can createin a region. In the gcloud CLI and the API, thisquota is referred to asHDB-TOTAL-GB
.Hyperdisk Balanced Throughput (MB/s)
. This quota is the total amount ofthroughput that you can provision for all Hyperdisk Balanced disks in a zone. In the gcloud CLI and the API, thisquota is referred to asHDB-TOTAL-THROUGHPUT
.Hyperdisk Balanced IOPS
. This quota is the total amount of IOPSthat you can provision for all Hyperdisk Balanced disks in a zone. In thegcloud CLI and the API, thisquota is referred to asHDB-TOTAL-IOPS
.Hyperdisk ML Capacity (GB)
. This quota is the total combined size ofHyperdisk ML disks that you can create in aregion. In the gcloud CLI and the API, thisquota is referred to asHDML-TOTAL-GB
.Hyperdisk ML Throughput (MB/s)
. This quota is the total amount ofthroughput that you can provision for all Hyperdisk ML disks in a region.In the gcloud CLI and the API, thisquota is referred to asHDML-TOTAL-THROUGHPUT
.Persistent disk standard (GB)
. This quota is the total size ofStandard Persistent Disks that can becreated in a region. In the gcloud CLI and the API, thisquota is referred to asDISKS_TOTAL_GB
. This quota also applies to:- Regional Standard Persistent Disks,but Regional Persistent Disks consume twice the amount of quota per GiB due toreplication in two zones within a region.
- When you choose to preserve Local SSD data when you stop or suspend a VM,an equivalent amount of Standard Persistent Disk quota is consumed.
Persistent disk SSD (GB)
. This quota is the total combined size ofSSD-backed Persistent Disk volumes thatcan be created in a region. In the gcloud CLI and the API,this quota is referred to asSSD_TOTAL_GB
. This quota is separate fromquota for Local SSD disks. This quota applies to the following disk types:- Zonal and Regional SSD Persistent Disk
- Zonal and Regional Balanced Persistent Disk
Regional Persistent Disksconsume twice the amount of quota per GiB due to replication in two zoneswithin a region.
Persistent Disk IOPS
. This quota is the total number of I/O operations per second for Extreme Persistent Disk volumes thatcan be created in a region. In the gcloud CLI andthe API, this quota is referred to asPD-EXTREME-TOTAL-PROVISIONED-IOPS
.This quota is separate from the IOPS quota for Google Cloud Hyperdisk.Local SSD per machine family (GB)
. This quota is the total combined size ofLocal SSD disks you can attachto VMs in a region based on the machine type of each VM. Local SSD is afast, ephemeral disk that should be used for scratch, local cache, orprocessing jobs with high fault tolerance because the disk is not intendedto survive VM instance reboots.Local SSD disks are sold in increments of 375GiB or 3TiB,depending on the machine type. There is also amaximum number of Local SSD disks that can be attached to a single VM,depending on the machine type. The maximum number of Local SSD disks, andthe size of each Local SSD disk create a limit on the total amount ofLocal SSD disk capacity you can allocate for a VM. In thegcloud CLI and the API, this limit is referredto as the
LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY
quota.For A3 and A2 ultra VMs, you don't need to request this quota as LocalSSDs are automatically added to these VMs. However, you would need torequest
LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY
for the otheraccelerator-optimized VMs.
Storage pool quotas
For capacity, Hyperdisk Storage Pools with Advanced capacity provisioninghave the following quotas, measured in GB (or 1,000 MB):
Hyperdisk Balanced Storage Pools Advanced Capacity (GB)
: The total amountof disk space that you can reserve per region in a Hyperdisk Balanced Storage Pool with Advanced capacityprovisioning.- gcloud CLI and the API:
HDB-STORAGE-POOL-TOTAL-ADVANCED-CAPACITY
- Metric:
compute.googleapis.com/hyperdisk_balanced_storage_pools_advanced_capacity
- gcloud CLI and the API:
Hyperdisk Throughput Storage Pools Advanced Capacity (GB)
: The total amountof disk space you can reserve per region in a Hyperdisk Throughput Storage Pool with Advanced capacityprovisioning.- gcloud CLI and the API:
HDT-STORAGE-POOL-TOTAL-ADVANCED-CAPACITY
- Metric:
compute.googleapis.com/hyperdisk_throughput_storage_pools_advanced_capacity
- gcloud CLI and the API:
For performance, Hyperdisk Storage Pools with Advanced performance provisioninghave the following quotas:
Hyperdisk Balanced Storage Pools Advanced IOPS
: The total IOPSthat you can reserve in a Hyperdisk Balanced Storage Pool with Advanced performanceprovisioning for a region.- gcloud CLI and the API:
HDB-STORAGE-POOL-TOTAL-ADVANCED-IOPS
- Metric:
compute.googleapis.com/hyperdisk_balanced_storage_pools_advanced_iops
- gcloud CLI and the API:
Hyperdisk Balanced Storage Pools Advanced Throughput (MB/s)
: The totalthroughput that you can reserve in a Hyperdisk Balanced Storage Pool with Advanced performanceprovisioning for a region.- gcloud CLI and the API:
HDB-STORAGE-POOL-TOTAL-ADVANCED-THROUGHPUT
- Metric:
compute.googleapis.com/hyperdisk_balanced_storage_pools_advanced_throughput
- gcloud CLI and the API:
Hyperdisk Throughput Storage Pools Advanced Throughput (MB/s)
: The totalthroughput that you can reserve in a Hyperdisk Throughput Storage Pool with Advanced performanceprovisioning for a region.- gcloud CLI and the API:
HDT-STORAGE-POOL-TOTAL-ADVANCED-THROUGHPUT
- Metric:
compute.googleapis.com/hyperdisk_throughput_storage_pools_advanced_throughput
- gcloud CLI and the API:
CPU quota limits
CPU quota is the total number of virtual CPUs across all of your VMinstances in a region. CPU quotas apply to running VMs and VMreservations. Both predefined andpreemptible VMs consume this quota.
To help protect Compute Engine systems and other users, some newaccounts and projects also have a global CPUs (All Regions)
quota. That quotaapplies to all regions and is measured as a sum of all your vCPUs in allregions.
For example, if you have 48 vCPUs remaining in a single region such asus-central1
but only 32 vCPUs remaining for the CPUs (All Regions)
quota,you can launch only 32 vCPUs in the us-central1
region, even though there isremaining quota in the region. This is because you reach theCPU (All Regions)
quota and need to delete existing instances before you canlaunch new instances.
E2 and N1 machine types share a CPU quota pool. Unless otherwise noted, allother machine types have unique, separate CPU quota pools.
If you are using committed use discounts for your VMs, you must have committeduse discount quota before you purchase a committed use discount contract.
Machine type | Quota pool | CPU quota name | Committed CPU quota name |
---|---|---|---|
N1 | shared pool | CPUS | Committed_CPUS |
E2 | shared pool | CPUS | Committed_CPUS |
N2 | separate pool | N2_CPUS | Committed_N2_CPUS |
N4 | separate pool | CPUS_PER_VM_FAMILY | Committed_N4_CPUS |
N2D | separate pool | N2D_CPUS | Committed_N2D_CPUS |
T2D | separate pool | T2D_CPUS | Committed_T2D_CPUS |
T2A | separate pool | T2A_CPUS | Not available (N/A) for T2A |
Z3 | separate pool | CPUS_PER_VM_FAMILY | Committed_Z3_CPUS |
M1 | separate pool | M1_CPUS | Committed_MEMORY-OPTIMIZED_CPUS |
M2 | separate pool | M2_CPUS | Committed_MEMORY-OPTIMIZED_CPUS |
M3 | separate pool | M3_CPUS | Committed_M3_CPUS |
X4 | separate pool | CPUS_PER_VM_FAMILY | Committed_X4_CPUS |
H3 | separate pool | CPUS_PER_VM_FAMILY | Committed_H3_CPUS |
C2 | separate pool | C2_CPUS | Committed_C2_CPUS |
C2D | separate pool | C2D_CPUS | Committed_C2D_CPUS |
C3 | separate pool | C3_CPUS | Committed_C3_CPUS |
C3D | separate pool | CPUS_PER_VM_FAMILY | Committed_C3D_CPUS |
C4 | separate pool | CPUS_PER_VM_FAMILY | Committed_C4_CPUS |
A2* | separate pool | A2_CPUS | Committed_A2_CPUS |
A3† | Not applicable (N/A) for A3 | Not applicable (N/A) for A3 | Not applicable (N/A) for A3 |
G2† | Not applicable (N/A) for G2 | Not applicable (N/A) for G2 | Not applicable (N/A) for G2 |
Preemptible VMs | shared pool | PREEMPTIBLE_CPUS | Not available (N/A) for preemptible VMs |
*For A2 VMs, you don't need to request CPU quotas. If you havethe required NVIDIA A100 GPU quotas,that is all that is needed to create these VMs.
†For A3 and G2 VMs, CPU quotas aren't applicable. If you have therequired NVIDIA H100 and L4 GPU quotas respectively,that is all that is needed to create these VMs.
GPU quota
Similar to virtual CPU quota, GPU quota refers to the total number of virtualGPUs in all VM instances in a region. GPU quotas apply to running VMsand VM reservations. Both predefined andpreemptible VMsconsume this quota.
Check theQuotas page to ensure that you haveenough GPUs available in your project, and to request a quota increase.In addition, new accounts and projects have a global GPU quota that appliesto all regions.
When you request a GPU quota, you must request a quota for the GPU models thatyou want to create in each region, and an additional global quota(GPUs (all regions)
) for the total number of GPUs of all types in all regions.Request preemptible GPU quota to use those resources.
Machine type | GPU type | GPU quota name | GPU family | Committed GPU quota name | Virtual workstation | Preemptible GPUs | Preemptible GPU virtual workstation |
---|---|---|---|---|---|---|---|
A3 Mega | H100 80GB Mega | GPUS_PER_GPU_FAMILY | NVIDIA_H100_MEGA | COMMITTED_NVIDIA_H100_MEGA_GPUS | N/A | PREEMPTIBLE_NVIDIA_H100_MEGA_GPUS | N/A |
A3 High | H100 80GB | GPUS_PER_GPU_FAMILY | NVIDIA_H100 | COMMITTED_NVIDIA_H100_GPUS | N/A | PREEMPTIBLE_NVIDIA_H100_GPUS | N/A |
A2 Standard | A100 40GB | NVIDIA_A100_GPUS | N/A | COMMITTED_NVIDIA_A100_GPUS | N/A | PREEMPTIBLE_NVIDIA_A100_GPUS | N/A |
A2 Ultra | A100 80GB | NVIDIA_A100_80GB_GPUS | N/A | COMMITTED_NVIDIA_A100_80GB_GPUS | N/A | PREEMPTIBLE_NVIDIA_A100_80GB_GPUS | N/A |
G2 | L4 | NVIDIA_L4_GPUS | N/A | COMMITTED_NVIDIA_L4_GPUS | NVIDIA_L4_VWS_GPUS | PREEMPTIBLE_NVIDIA_L4_GPUS | PREEMPTIBLE_NVIDIA_L4_VWS_GPUS |
N1 | T4 | NVIDIA_T4_GPUS | N/A | COMMITTED_NVIDIA_T4_GPUS | NVIDIA_T4_VWS_GPUS | PREEMPTIBLE_NVIDIA_T4_GPUS | PREEMPTIBLE_NVIDIA_T4_VWS_GPUS |
V100 | NVIDIA_V100_GPUS | N/A | COMMITTED_NVIDIA_V100_GPUS | N/A | PREEMPTIBLE_NVIDIA_V100_GPUS | N/A | |
P100 | NVIDIA_P100_GPUS | N/A | COMMITTED_NVIDIA_P100_GPUS | NVIDIA_P100_VWS_GPUS | PREEMPTIBLE_NVIDIA_P100_GPUS | PREEMPTIBLE_NVIDIA_P100_VWS_GPUS | |
P4 | NVIDIA_P4_GPUS | N/A | COMMITTED_NVIDIA_P4_GPUS | NVIDIA_P4_VWS_GPUS | PREEMPTIBLE_NVIDIA_P4_GPUS | PREEMPTIBLE_NVIDIA_P4_VWS_GPUS |
Preemptible quotas
You can requestpreemptible quotas for Preemptible CPUs
, Preemptible GPUs
, andPreemptible Local SSDs (GB)
. These preemptible quotas apply to the CPUs, GPUs,and local SSDs of the following VMs:
- Spot VMs and legacy preemptible VMs
- GPU VMs with predefined run times
If your project does not have preemptible quota, and you have never requestedpreemptible quota, these resources consume standard quota. However, after yourequest preemptible quota in your project, the applicable resources can onlyconsume preemptible quota and can't revert to consuming standard quotas.
Requesting preemptible quotas can help you improve quota obtainability byproviding separate quotas for temporary resources. After Compute Enginegrants you preemptible quota in a region, all applicable resources automaticallyconsume preemptible quota. If this quota is depleted, you must requestpreemptible quota for those resources.
External IP addresses
You must have enough external IP addresses for every VM that needs to bedirectly reachable from the public internet. Regional IP quota is for assigningIPv4 addresses to VMs in that region. Global IP quota is for assigning IPv4addresses to global networking resources such as load balancers.Google Cloud offers different types of IP addresses, dependingon your needs. For information about costs, refer to External IP addresspricing. For information about quota specifics,see Quotas and limits.
In-use external IP addresses. Includes both ephemeral and static IPaddresses that are being used by a resource.
Static External IP addresses: External IP addresses reserved for yourresources that persist through machine restarts. You can register theseaddresses with DNS and domain provider services to provide a user-friendlyaddress. For example, www.example-site.com.
Static Internal IP addresses: Static internal IP addresses let youreserve internal IP addresses from the internal IP rangeconfigured in the subnet. You can assign those reserved internal addressesto resources as needed.
Quota rollouts
Occasionally, Google Cloud changes the default quota for resources and APIs.These changes take place gradually. During the rollout of a new defaultquota, the maximum quota that appears in the Google Cloud console might not reflectthe actual maximum quota that is available to you.
For example, suppose that Google Cloud changes the default maximum quota forfirewall rules from 200
to 300
, and you use the Google Cloud console toview your quota, you might see the new quota of 300
, even though youractual quota is 200
until the rollout completes.
For information about ongoing quota rollouts, seeknown issues. If no issuesare described, no quota rollouts are ongoing.
If a quota rollout is ongoing and you want to confirm the actual maximum quotathat is available to you,use the Google Cloud CLI to check your quota.If you need more quota than you have access to,submit a quota increase request.
What's next
- Read about resource-based pricing.
- Read about VM instances pricing.
- Learn how to view and manage quota.
- Learn how to set up quota alerts.
- Learn how toautomatically increase quota based on your Compute Engine resources' usage.