This document defines the Google Cloud console terms used to describe virtual machine (VM) instances. VMs are the underlying hardware you use for developing apps and running your workloads. All VMs are categorized by machine family. The second generation of general-purpose VMs includes E2, E2 shared-core, N2, N2D, and Tau T2D. N1, and N1 shared-core VMs are in the first generation. All machine families support preemptible VMs, with the exception of M2 memory-optimized VMs.
- General-purpose —best price-performance ratio for a variety of workloads.
- Compute-optimized —highest performance per core on Compute Engine and optimized for compute-intensive workloads.
- Memory-optimized —ideal for memory-intensive workloads, offering more memory per core than other machine families, with up to 12 TB of memory.
- Accelerator-optimized —ideal for massively parallelized Compute Unified Device Architecture (CUDA) compute workloads, such as machine learning (ML) and high performance computing (HPC). This family is the best option for workloads that require GPUs.
Machine configurations are defined by the following terms:
- Machine family: A curated set of processor and hardware configurations optimized for specific workloads. During the VM creation process, you choose your preferred machine family and configure your VM.
- Series: Within the console, machine families are further classified by series generation. Newer VMs are listed under second generation, and older VMs are listed under first generation.
- Machine type: Every machine family has predefined machine shapes that have a specific vCPU to memory ratio that fits a variety of workload needs. If a predefined machine type does not meet your needs, you can create a custom machine for any general-purpose VM.
Try it for yourself
If you're new to Google Cloud, create an account to evaluate how Compute Engine performs in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.Try Compute Engine free
You are billed for the resources that a VM uses. When you create a VM, you select a machine type for the instance and are billed as described in the VM instance pricing page. Specifically, you are billed for each vCPU and GB of memory individually, as described in resource-based billing model. Applicable discounts, such as sustained use discounts and committed use discounts apply.
To see the calculated hourly and monthly cost for each machine type, see VM instance pricing.
Machine family categories
The general-purpose machine family offers different machine types with the best price-performance ratio for a variety of workloads.
- Cost-optimized E2 VMs offer up to 32 vCPUs with up to 128 GB of memory with a maximum of 8 GB per vCPU. E2 VMs have a predefined CPU platform running either an Intel processor or the second generation AMD EPYC Rome processor, which is selected for you at the time of VM creation. E2 VMs provide a variety of compute resources for the lowest price on Compute Engine, especially when paired with committed-use discounts.
- N2 VMs offer up to 128 vCPUs, 8 GB of memory per vCPU, and are available on the Intel Ice Lake and Cascade Lake CPU platforms.
- N2D VMs offer up to 224 vCPUs, 8 GB of memory per vCPU, and are available on second generation AMD EPYC Rome platforms.
- Tau T2D VMs offer up to 60 vCPUs, 4 GB of memory per vCPU, and are available on third generation AMD EPYC Milan processors. Tau T2D VMs have cluster-threading disabled, therefore a vCPU is equivalent to an entire core.
- N1 VMs offer up to 96 vCPUs, 6.5 GB of memory per vCPU, and are available on Intel Sandy Bridge, Ivy Bridge, Haswell, Broadwell, and Skylake CPU platforms.
Shared-core VMs are available for E2 and N1 in the general-purpose family. These VMs timeshare a physical core. This can be a cost-effective method for running small, non-resource intensive apps.
e2-mediumshared-core VMs have 2 vCPUs available for short periods of bursting.
g1-smallshared-core VMs have up to 1 vCPU available for short periods of bursting.
The compute-optimized machine family offers the highest performance per core on Compute Engine and are optimized for compute-intensive workloads. Compute-optimized VMs run on an Intel Scalable Processor (Cascade Lake) and sustain up to 3.8 GHz all-core turbo.
The memory-optimized machine family offers VMs that are ideal for memory-intensive workloads. Memory-optimized VMs offer more memory per core than any other machine family, with up to 12 TB of memory.
The accelerator-optimized machine family is ideal for massively parallelized Compute Unified Device Architecture (CUDA) compute workloads, such as machine learning (ML) and high performance computing (HPC). Accelerator-optimized VMs are the optimal choice for workloads that require GPUs.
Recommendations for machine families
The following table provides VM recommendations for different workloads.
|General purpose||Workload optimized|
|E2||N2, N2D, N1||Tau T2D||M2, M1||C2||A2|
|Day-to-day computing at a lower cost||Balanced price/performance across a wide range of VM shapes||Best performance/cost for scale-out workloads||Ultra high-memory workloads||Ultra high performance for compute-intensive workloads||Optimized for high performance computing workloads|
After you create a VM, you can use rightsizing recommendations to optimize resource utilization. For more information, see Applying machine type recommendations for VM instances.
Machine family comparison
Use the following table to compare each category of machine family and determine which one is appropriate for your workload. If, after reviewing this section, you are still unsure which machine family is best for your workload, start with a general-purpose machine. See CPU platforms for details about all supported processors.
To learn how your VM selection affects the performance of persistent disks attached to your VMs, see Configuring your persistent disks and VMs.
|Machine families||vCPUs||Memory (per vCPU)||Processors||Custom VMs||Local SSDs||Sustained-use discounts||Preemptible VMs|
|E2* General-purpose||2–32||0.5–8 GB†||
|E2* shared-core||0.25–1||0.5–8 GB||
|N2 General-purpose||2–128||0.5–8 GB||
|N2D‡ General-purpose||2–224||0.5–8 GB||
|T2D General-purpose||1–60||4 GB||
|N1 General-purpose||1–96||0.95–6.5 GB||
|N1 shared-core||0.2–0.5||3.0–3.4 GB||
|C2 Compute-optimized||4–60||4 GB||
|M1 Memory-optimized megamem||96||14.9 GB||
|M1 Memory-optimized ultramem||40–160||28.3 GB||
|M2 Memory-optimized ultramem||208–416||28.3 GB||
|A2 Accelerator-optimized high-gpu||12–96||7 GB||
|A2 Accelerator-optimized mega-gpu||96||14 GB||
†E2 VMs support up to 128 GB of memory total.
‡N2D standard and high-CPU VMs have up to 224 vCPUs.
GPUs and VMs
VMs with lower numbers of GPUs are limited to a maximum number of vCPUs. In general, a higher number of GPUs lets you create instances with a higher number of vCPUs and memory. For more information, see GPUs on Compute Engine.
- Creating and starting a VM instance
- Creating a VM instance with a custom machine type.
- Quickstart using a Linux VM
- Quickstart using a Windows VM
- Learn more about attaching block storage to your VMs.