-
Overview
- Each machine type family includes different machine types
- Each family is curated for specific workload types
- General-purpose machine types offer the best price-performance ratio for a variety of workloads
- Memory-optimized machine types are ideal for memory-intensive workloads because they offer higher memory per core than other machine types
- Compute-optimized machine types offer the highest performance per core on Compute Engine and are optimized for compute-intensive workloads
- Shared-core machine types are available in the N1 and E2 families
- Shared-core machine types timeshare a physical core, and are a cost-effective method for running small, non-resource intensive applications
-
Networking
- Google Cloud does not artificially cap VM instance inbound or ingress traffic
- VMs are allowed to receive as much traffic as resources and network conditions allow
- For purposes of capacity planning, assume that each VM instance can handle no more than 10 Gbps of external Internet traffic
- This value is an approximation, is not covered by an SLA, and is subject to change.
- Adding Alias IP ranges or multiple network interfaces to a VM does not increase its ingress capacity
- The maximum egress rate depends on the machine type of the VM
- Egress traffic is the total outgoing bandwidth that is shared among all network interfaces of a VM, including data transfer to persistent disks that are connected to the VM
- Actual egress rates depend on many factors other than the maximum egress rate
- Using external IP addresses to communicate between VMs requires more overhead than using internal IP addresses
-
General purpose
- General-purpose machine types offer the best price-performance ratio for a variety of workloads
- If not sure which machine type is best for a workload, using a general-purpose machine type is a good place to start
- N1 machine types are Compute Engine's first generation general-purpose machine types
- High-CPU machine types are ideal for tasks that require a moderate increase of vCPUs relative to memory
- N2 machine types are the second generation general-purpose machine types that offer flexible memory and CPU sizing
- These machine types also offer an overall performance improvement over N1 machine types
- Offers higher memory-to-core ratios for VMs created with the extended memory feature.
- Using the extended memory feature helps control per-CPU software licensing costs while providing access to more RAM
- N2 machine types do not support GPUs
- N2 machine types are only available in select zones and regions
- High-CPU machine types are ideal for tasks that require a moderate increase of vCPUs relative to memory
- E2 machine types are available on the following predefined CPU platforms: Intel Skylake, Broadwell, Haswell, and AMD EPYC processors
- Small to medium workloads that require at most 16 vCPUs but do not require local SSDs or GPUs are an ideal fit for E2 machines
- E2 machine types do not offer sustained-use discounts; however, they do provide consistently low on-demand and committed-use pricing
- Are available in predefined and custom machine types.
- Offers the lowest on-demand pricing across the general-purpose machine types.
- Powered by an Intel or AMD EPYC processor (selected at instance creation by Compute Engine based on availability).
- E2 machine types do have some limitations when compared with other general-purpose machine types
- No support for GPUs, local SSDs, sole-tenant nodes, or nested virtualization
- No sustained-use discounts
- No control over processor type
- E2 machine types are only available in select regions and zones
- E2 high-memory machine types have 8 GB of system memory per vCPU
- High-CPU machine types are ideal for tasks that require a moderate increase of vCPUs relative to memory
-
Custom
- If none of the general-purpose predefined machine types match the needs, create a custom machine type with the number of vCPUs and amount of memory required
- Custom machine types are ideal for Workloads that are not a good fit for the predefined machine types
- Workloads that require more processing power or more memory, but don't need all of the upgrades that are provided by the next larger predefined machine type
- It costs slightly more to use a custom machine type than an equivalent predefined machine type, and there are still some limitations in the amount of memory and vCPUs that can be selected
-
Memory optimized
- Memory-optimized machine types are ideal for tasks that require intensive use of memory with higher memory-to-vCPU ratios than the N1 high-memory machine types
- These machine types are suited for in-memory databases and in-memory analytics, such as SAP HANA and business warehousing (BW) workloads, genomics analysis, SQL analysis services, etc
- Memory-optimized machine types are only available as predefined machine types
- You cannot use regional persistent disks with memory-optimized machine types
- Memory-optimized machine types are only available in specific zones
- M1 machine types are the first generation memory-optimized machine types
- M2 ultramem machine types offer on-demand pricing for an evaluation period only
- Long running usage requires purchasing a committed use contract
-
Compute optimized
- Compute-optimized machine types are ideal for compute-intensive workloads
- These machine types offer the highest performance per core on Compute Engine
- Compute-optimized types are only available as predefined machine types and include the C2 machine types
- C2 machine types offer much more computing power, run on a newer platform, and are generally more robust for compute-intensive workloads than the N1 high-CPU machine types
- Regional persistent disks cannot be used with compute-optimized machine types
- C2 machine types are subject to different disk limits than general-purpose and memory-optimized machine types
- C2 machine types are only available in select zones and regions
- C2 machine types are only available on select CPU platforms
-
Shared core
- Shared-core machine types use Hyper-threading to split a virtual core for the purpose of multitasking
- N1 shared core machine types have up to one vCPU available for short periods of bursting
- E2 shared-core machine types have two vCPUs available for short periods of bursting
- Shared-core instances can be more cost-effective for running small, non-resource intensive applications than standard, high-memory or high-CPU machine types
- Shared-core machine types offer bursting capabilities that allow instances to use additional physical CPU for short periods of time
- Bursting happens automatically when an instance requires more physical CPU than originally allocated
- During these spikes, the instance will opportunistically take advantage of available physical CPU in bursts
- Note that bursts are not permanent and are only possible periodically.
- Bursting doesn't incur any additional charges
- Charges are based on the listed on-demand price for f1-micro, g1-small, and e2 shared-core machine types
- These machine types are burstable up to 1 vCPU for short periods of time
- E2 shared-core machines are cost-effective, and are ideal for small workloads
- E2 shared-core machine types expose two vCPUs to the guest operating system
- These machine types are burstable up to 2 vCPUs for short periods of time
-
GPU
- Compute Engine provides graphics processing units (GPUs) for virtual machine instances
- Use GPUs to accelerate specific workloads on instances such as machine learning and data processing
- GPU instances cannot live migrate and must terminate for host maintenance events
- These maintenance events typically occur once each month
- Maintenance events can also occur more frequently when necessary
- GPUs can only be attached to instances with predefined or custom machine types
- GPUs are not supported on shared-core or memory-optimized machine types
- Instances with lower numbers of GPUs are limited to a maximum number of vCPUs
- In general, a higher number of GPUs allows users to create instances with a higher number of vCPUs and memory
- GPU devices receive sustained use discounts similar to vCPUs
- Higher network bandwidths can improve the performance of distributed workloads
- On Compute Engine, network bandwidth is dependent on machine type and the number of CPUs
- For VM instances that have attached GPUs, the configuration of GPU count, CPU, and memory impacts the network bandwidth as well
- Can attach GPUs only to general-purpose N1 machine types.
- GPUs are not supported for other machine types
- Instances with lower numbers of GPUs are limited to a maximum number of vCPUs
- In general, a higher number of GPUs allows users to create instances with a higher number of vCPUs and memory
-
CPU
- When a VM instance is started on Compute Engine, the instance uses one of the CPU platforms available on Compute Engine
- If a CPU platform is not specified, the instance uses the default platform for the zone where the instance will run
- Each CPU platform is available only for specific machine types
- On Compute Engine, each virtual CPU (vCPU) is implemented as a single hardware hyper-thread on one of the available CPU platforms
- On Intel Xeon processors, Intel Hyper-Threading Technology supports multiple app threads running on each physical processor core
- Compute Engine virtual machine instances can be configured with one or more of hyper-threads as vCPUs
- The machine type specifies the number of vCPUs that an instance has