Organizations all over the world have been moving workloads to the cloud. Microsoft Azure provides a host of benefits and services which make it a top choice for on-premises to cloud migrations.
When it comes to migrating workloads, Azure virtual machines are a great choice with VM options up to 416 vCPUs and 12 TB of memory and storage IOPS up to 3.7 million.
Azure VMs come in various predefined sizes that are called series or families. Each series is designed to support certain workloads or common use cases. Virtual machines within each series have a predefined number of vCPUs, memory, storage IO limits, and network bandwidth. Due to each series being designed for specific workloads, and VM instances having resource limits, it is crucial to understand your workload to select the best Azure VM to support your workload.
Let’s look at what you need to know about the various VM series, with deeper insights into common use cases for each type.
What are types of virtual machines in Azure?
A-series: Entry-level VMs for development/testing
These are light weight virtual machines designed for development and test workloads. They are a low-cost option to get started with Azure. These are not designed for production workloads and should ideally only be used for development and testing. A-series VMs are currently slated to retire on August 31, 2024.
Bs-series: Economical, burstable VMs
These are another economical series of virtual machines that typically run a low to medium baseline, but sometimes need to ‘burst’ to significantly higher CPU when the workload demand increases. This series is good for development and testing servers, small web servers, micro services, and other small workloads.
D-series: General purpose compute
The D-series provides a combination of vCPUs, memory, and temporary storage to meet most production workload requirements. The D-series has a variety of machine types. The Dv3 machines are hyper-threaded based on the 2.3 GHz Intel Xeon E5-2673 (Broadwell) processors that can achieve a 3.5 GHz boost.
Dv4 and Ddv4 virtual machines are based on a custom Intel Xeon Platinum 8272CL processor which has a base speed of 2.5 GHz and can boost to 3.4 GHz. The addition of the Ddv4 class of machine provides local SSD storage that can benefit applications that need low latency and high-speed storge compared to the Dv4 virtual machines that do not include local storage.
The Dv5 and Ddv5 series virtual machines utilize an Intel Xeon Platinum 8370C (Ice Lake) processor in a hyper-threaded configuration. This VM can scale up 96 vCPUs, just like the Dv4 and Ddv4 series VMs.
The Dpsv5 and Dpdsv5 series use the Ampere Altra 64-bit Arm-based processor at 3.0 GHz. This processor was engineered for scale-out cloud environments. The Dplsv5 and Dpldsv5 are geared to offer one of the lowest price points within the general-purpose tier to provide 2 GiBs per vCPU for general-purpose Linux workloads that have a lower requirement on RAM.
For workloads that have a higher storage IO requirement and need premium SSDs or Ultra Disk, the Ds, Dds, Das, Dads, Dps, Dpds, Dpls, and Dplds series are a consideration.
Workload considerations for the D-Series can include enterprise applications, small to medium databases, application servers, medium traffic web servers, web front ends, e-commerce, and much more.
E-Series: Optimized for in-memory, hyper-threaded applications
This series is designed for heavy in-memory applications such as SAP HANA. The E-series have a higher memory-to-core ratios compared to the D-Series. This makes the E-series a better option for relational database servers that have medium to large caches, and or in-memory analytics.
The Ev3-series supports Premium SSDs, 16-432GB of RAM, and vCPUs that range from 2-64.
The Ev4 and Edv4 VMs use the Intel Xeon Platinum 8272CL processor with a base speed of 2.5 GHz and can boost up to 3.4 GHz. Ev3 and Edv4 VMs can use up to 504GB of RAM. Edv4 supports local SSD storage where the Ev4 does not.
Ev5 and Edv5 VMs use the Intel Xeon Platinum 8370C processor which is hyper-threaded and supports up to 672GB of RAM with the Edsv5.
The Ebsv5 and Ebdsv5 VMs have increased remote storage performance which makes them ideal for storage throughput intensive workloads such as data analytics applications and relational databases. Ebdsv5 and Ebsv5 VMs provide up to 300% increase in remote storage performance.
The Eav4 and Easv4 series utilize the AMD EPYC 7452 processor that supports up to 96 vCPUs, 672GB of RAM and 2.4TB of SSD temporary storage.
The EasV5 and Eadsv5 VMs use the AMD EPYC 7763v (Milan) processor. This processor can boost to 3.5GHz.
Epsv5 and Epdsv5 VMs utilize the Ampere Altra 64-bit Arm-base processor at 3.0 GHz.
Premium and Ultra Disk storage is available with Es, Eds, Eas, Eads, Ebs, Ebds, Eps, and Epds VM series.
Workload considerations for the E-Series are in-memory applications such as SAP HANA, SAP NetWeaver, and general memory intensive enterprise applications, Microsoft SQL Server and other relational databases, data warehousing, business intelligence applications, and much more.
F-series: Compute optimized virtual machines
The F-series VMs have a higher CPU to memory ratio. They feature 2GB RAM and 16GB of local SSD per vCPU and are built for compute-intensive workloads.
Workload considerations for this series would include batch processing, web servers, gaming, and analytics.
G-series: Memory and storage optimized virtual machines
This series features the Intel Xeon E5_v3 family with two times more memory and four times more SSDS storage than the general-purpose D-series. The G-series can have up to 512GB of RAM and 32 vCPUs.
Workload considerations include large SQL and NoSQL databases, ERP, SAP, and data warehouses.
H-series: High performance computing virtual machines
The HB-series are built for HPC applications such as financial analysis, weather simulation, and silicon RTL modeling. These VMs support up to 120 AMD EPYC 7003-series vCPUs with up to 448GB of RAM with no hyper-threading. The HB-series VMs also provide 350 GB/sec of memory bandwidth, up to 32MB of L3 cache per core, and up to 7 GB/s of block device SSD performance, with clock speeds up to 3.675 GHz.
HC-series VMs are optimized for HPC applications that have intensive computation demands. Workloads that include implicit finite element analysis, computational chemistry, and reservoir simulation are ideal for the HC-series. The HC-series features 44 Intel Xeon Platinum 8168 processor cores, 8GB of RAM per vCPU with no hyper-threading, and up to four managed disks.
Ls-series: Storage optimized virtual machines
The Ls-series are optimized for storage and ideal for those applications that require low latency, high throughput, with large local disk storage. These VMs leverage the Intel Haswell E5 Xeon v3 processor with 4, 8, 16, and 32 core VM sizes with up to 6TB of local SSD.
The Lsv2 VM runs the AMD EPYC 7551 processor with up to 80 vCPUs in a hyper-threaded configuration with 8GB of ram per vCPU.
The Lasv3 VM is built with similar configurations as the Lsv2 however it uses the 3rd
Gen AMD EPYC 7763v processor with hyper-threading.
The Lsv3 VM takes advantage of the Intel Xeon Platinum 8370 (Ice Lake) processor with hyper-threading with similar sizing as the Lasv3 VMs.
Workload considerations for the Ls-Series include NoSQL databases such as Cassandra, MongoDB, Redis, and Cloudera, as well as data warehousing and large transactional databases.
M-series: Memory optimized virtual machines
The M-series are built for heavy in-memory workloads such as SAP HANA, SQL Hekaton, and other large in-memory business critical workloads. The M-series offers up to 4 TB of ram on a single virtual machine with vCPUs up to 128.
Workload considerations include SAP HANA, Microsoft SQL Server, or any enterprise application requiring high memory utilization.
Mv2-series: Largest memory optimized virtual machines
The Mv2-series are hyper-threaded and feature Intel Xeon Platinum 8180M 2.5 GHz (Skylake processors) which offer up to 416 vCPUs on a single VM and 3TB, 6TB, and 12TB memory configurations.
N-series: GPU enabled virtual machines
The N-series are ideal for compute and graphics-intensive workloads. These are common for high-end visualization, deep learning, and predictive analytics. These currently come in three different offerings to target specific workloads.
The NC-series is focused on machine learning and high-performance computing. The latest version NCsv3 features NVIDIA’s Tesla V100 GPU.
The NDs-series is focused on training and inference scenarios for deep learning. The latest version NDv2 also features NVIDIA’s Tesla V100 GPUs.
The NV-series is backed by the NVIDIA Tesla M60 GPU for powerful remote visualization workloads and other types of intense graphics applications.
Workload considerations include video editing, gaming, remote visualization, simulation, rendering graphics, and deep learning.
With the vast options available to you for selecting a virtual machine, it is common for organizations to be focused on vCPU, memory, and storage capacity needs based on what they currently have provisioned. Consideration needs to be given to storage IO needs as well, at least for IO intensive workloads. Each VM type has limitations as to the number of data disks, storage throughput, and network bandwidth.
Proper baselines should be captured to determine storage throughput needs as well as network bandwidth to ensure the Azure VM limitations will not be a bottleneck.
As a SQL Server consultant, I’ve been brought into numerous performance reviews to help organizations determine why SQL Server is not performing as well as they expected after a cloud migration. Quite often the issue is related to the Azure VM choice, as the decision was made simply based on vCPU count, memory, and storage capacity. After a quick analysis, it would be determined that they were hitting the storage throughput cap of the virtual machine and we would have to resize the VM to allow for a higher throughput limit. Constrained core VMs help from a SQL Server license perspective so that we can gain the benefits of the larger VM with memory, data disk limits, and storage throughput, without the extra vCPUs requiring additional licensing.
Always get a baseline before migrating
Azure has a huge array of virtual machines that can handle practically any workload. Microsoft created VM series to help guide customers to selecting the proper class virtual machine for their business needs. Decisions can be made based upon CPU types, memory needs, or storage requirements.
For any organizations planning an Azure migration, capturing an existing baseline is a critical step to determine what the actual needs are for the new virtual machine among other database cloud migration best practices
You can learn more about how SolarWinds® Database Performance Analyzer
is designed to help you more easily correlate response time to key VM metrics for deeper insights into the impact of VM performance on the database