Azure VM sizing can be a daunting task, but understanding your options is key to choosing the right size for your workload.
There are three main VM families: General Purpose, Compute Optimized, and Memory Optimized.
Each family has its own set of sizes, with General Purpose VMs ranging from B1ms to DSv4 series.
The number of vCPUs and memory vary across sizes, with B1ms having 1 vCPU and 2 GB of memory.
Compute Optimized VMs, on the other hand, are ideal for workloads that require a high number of vCPUs.
Some sizes, like FSv2, offer up to 24 vCPUs and 96 GB of memory.
Memory Optimized VMs are designed for workloads with high memory requirements, like databases.
They offer up to 24 TB of memory in some sizes, such as the M144s v2.
Azure VM Sizing Basics
Azure VM sizes follow specific naming conventions to denote varying features and specifications.
Each character in the name represents different aspects of the VM, including the VM family, number of vCPUs, and extra features like premium storage or included accelerators.
Azure VM sizes are categorized into types based on intended workload, including General purpose, Compute optimized, Memory optimized, Storage optimized, GPU accelerated, and FPGA accelerated.
There are three main components to consider when choosing an Azure VM size: Type, Series, and Size.
Here's a breakdown of each:
- Type: Basic categorization by intended workload
- Series: Group of sizes with similar hardware and features
- Size: Specific VM configuration, including vCPUs, memory, and accelerators
For example, the Standard_D2_v3 VM size has 1 temp storage disk, 50 GiB of temp disk space, and 3000 temp disk random read IOPS.
Here's a comparison of temp storage disk specs for different VM sizes:
Compute Options
F-series VMs are ideal for compute-intensive workloads that require high CPU performance, such as batch processing, web servers, gaming, and analytics. They feature 2GB RAM and 16GB of local SSD per vCPU.
The F-series VMs are well-suited for medium traffic web servers, network appliances, and batch processes. They're also great for application servers that require quick processing and don't need large amounts of memory.
For scenarios that demand extensive processing resources and rapid execution of complex operations, FX-series VMs are the way to go. They use the latest Intel Ice Lake processors and are optimized for compute-intensive tasks.
Here's a brief comparison of the F-series and FX-series VMs:
Compute
Azure offers a range of compute-optimized virtual machines (VMs) designed for workloads that require high CPU performance.
F-series VMs are ideal for batch processing, web servers, gaming, and analytics due to their high CPU-to-memory ratio.
With 2GB RAM and 16GB of local SSD per vCPU, F-series VMs are built for compute-intensive workloads.
Batch processing, web servers, gaming, and analytics are just a few examples of workloads that can benefit from F-series VMs.
FX-series VMs, on the other hand, are designed for workloads that require significant CPU capabilities, such as financial modeling, scientific simulations, and heavy calculations.
These VMs use the latest Intel Ice Lake processors and are optimized for compute-intensive tasks.
FX-series VMs are well-suited for Electronic Design Automation (EDA) workloads, which require high CPU clock speeds and high memory-to-CPU ratios.
Here's a brief comparison of some compute-optimized VMs:
These VMs offer varying levels of CPU performance, memory, and storage, making them suitable for different types of workloads.
A-Series Compute Instances
The A-series compute instances are designed for compute-intensive workloads, making them ideal for tasks that require high CPU performance.
These instances come in a range of sizes, from ExtraSmall to A7, each with varying numbers of CPU cores and memory.
The A8* and A9* sizes have 8 and 16 CPU cores respectively, with 56 and 112 GiB of memory. They also have 2 and 4 NICs with high and very high network bandwidth respectively.
The A10 and A11 sizes have 8 and 16 CPU cores respectively, with 56 and 112 GiB of memory. They also have 2 and 4 NICs with high and very high network bandwidth respectively.
Here are the A-series sizes with their corresponding CPU cores, memory, and network bandwidth:
The A-series instances are suitable for tasks that require high CPU performance, such as batch processing and web servers.
Low CPU Resizing
Resizing Azure virtual machines with low CPU usage is a great way to optimize your resources and save costs. This process involves restarting the virtual machine, so it's essential to schedule the restart to minimize disruptions.
You can resize Azure virtual machines using multiple methods, and one of them is through the Azure Advisor. To do this, select the "Right-size or shutdown under-utilized virtual machines" recommendation and choose the virtual machine you want to resize. Verify the utilization metrics to ensure it's a good candidate for resizing.
Azure Advisor provides a list of feasible resize options, and you should select the cost-effective one that provides the best performance. After resizing, a notification will appear when the VM resizes effectively.
If you prefer to resize your virtual machine through the Azure portal, you can do so by accessing the virtual machine page and selecting the size option from the left-hand side menu. Choose a new virtual machine size from the list of available sizes and select the Resize option.
To resize a virtual machine in the CLI, you can use the az vm show command to view the current size of the VM, followed by the az vm list-vm-resize-options command to view the available VM sizes on the hardware cluster hosting the VM. If the desired VM size is listed, you can resize the VM with the az vm resize command.
What Types Are
Cloud computing is a type of compute option that offers scalable and on-demand access to computing resources over the internet.
It's often used by businesses and organizations to reduce costs and improve efficiency. Cloud computing resources can be quickly scaled up or down to match changing business needs.
On-premises computing, on the other hand, refers to computing resources that are physically located within an organization's premises.
This type of compute option provides more control and security for sensitive data, but requires significant upfront investment in hardware and maintenance.
Hybrid computing combines elements of cloud and on-premises computing to create a flexible and adaptable infrastructure.
This approach allows organizations to take advantage of the scalability of cloud computing while still maintaining control over sensitive data and applications.
N-Series: GPU Enabled
The N-Series is ideal for compute and graphics-intensive workloads, making it perfect for high-end visualization, deep learning, and predictive analytics.
N-series virtual machines are available in three different offerings: NC-series, NDs-series, and NV-series, each targeting specific workloads.
The NC-series is focused on machine learning and high-performance computing, with the latest version NCsv3 featuring NVIDIA’s Tesla V100 GPU.
The NDs-series is ideal for training and inference scenarios for deep learning, with the latest version NDv2 also featuring NVIDIA’s Tesla V100 GPUs.
The NV-series is backed by the NVIDIA Tesla M60 GPU, making it perfect for powerful remote visualization workloads and other types of intense graphics applications.
Video editing, gaming, remote visualization, simulation, rendering graphics, and deep learning are just a few examples of the many workloads that can benefit from the N-Series.
Memory and Storage
Azure VM sizing offers a range of options to suit different workloads, including memory and storage optimized virtual machines.
The G-series features the Intel Xeon E5_v3 family with two times more memory and four times more SSD storage than the general-purpose D-series. This makes it ideal for large SQL and NoSQL databases, ERP, SAP, and data warehouses.
The M-series is built for heavy in-memory workloads such as SAP HANA, SQL Hekaton, and other large in-memory business critical workloads. It offers up to 4 TB of RAM on a single virtual machine with vCPUs up to 128.
For storage-optimized workloads, the L-family VM size series are one of Azure's storage-optimized VM instances. They're designed for workloads that require high disk throughput and I/O, such as databases, big data applications, and data warehousing.
The Ls-series, a sub-family of the L-series, are optimized for storage and ideal for 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 Mv2-series, on the other hand, 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. This makes them suitable for large in-memory workloads.
Here's a comparison of the M-series and Mv2-series:
Performance and Considerations
Performance considerations are crucial when sizing Azure VMs. The Azure Compute Unit (ACU) is a standardized way to compare compute performance across Azure SKUs, with a Small (Standard_A1) VM set at 100 ACUs.
ACU is only a guideline, and results may vary for your specific workload. However, it's a useful tool to identify which SKU can satisfy your performance needs. For example, A8-A11 VMs have 225 ACUs, while D v2 VMs have 210-250 ACUs, making them suitable for high-performance workloads.
To ensure optimal performance, consider storage IO needs, especially for IO-intensive workloads. Each VM type has limitations on data disks, storage throughput, and network bandwidth. Proper baselines should be captured to determine storage throughput needs and network bandwidth to avoid bottlenecks.
Here's a breakdown of the ACU/Core values for different SKU families:
VMs with ACUs marked with a * use Intel Turbo technology to increase CPU frequency and provide a performance boost, but the amount of the boost can vary based on VM size, workload, and other workloads running on the same host.
Performance Considerations
The Azure Compute Unit (ACU) is a standardized way to compare compute performance across Azure SKUs. It's based on a Small (Standard_A1) VM being 100 ACU, and other SKUs represent how much faster they can run a standard benchmark.
You can use the ACU to identify which SKU is most likely to satisfy your performance needs, but keep in mind it's only a guideline, and the results for your workload may vary.
The ACU is marked with a * for SKUs that use Intel Turbo technology to increase CPU frequency and provide a performance boost. The amount of the boost can vary based on the VM size, workload, and other workloads running on the same host.
Here's a list of SKUs with their corresponding ACU/Core values:
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. This is especially important for IO-intensive workloads.
Low CPU Usage
Low CPU usage is a key indicator of underutilized virtual machines. Azure Advisor monitors virtual machine usage for seven days to identify underutilized resources.
Virtual machines are considered low usage if their network usage is 7 MB or less and CPU utilization percentage is 5% or less averaged over four or more days. This is the default setting for the average CPU utilization rule.
You can configure the average CPU utilization rule on a per subscription basis, setting it to 5%, 10%, 15%, or 20%.
Azure VM Sizing Series
Azure VM sizes follow specific naming conventions to denote varying features and specifications. Each character in the name represents different aspects of the VM, including the VM family, number of vCPUs, and extra features like premium storage or included accelerators.
Azure VM sizes are categorized into four main types: General purpose, Compute optimized, Memory optimized, and Storage optimized. These categories determine the intended workload of the VM.
To choose the right VM size, you need to understand the naming conventions. VM sizes are further broken down into the 'Series' name and the 'Size' name. The 'Series' name represents a group of sizes with similar hardware and features.
Here's a breakdown of the categories and their descriptions:
For example, the 'Standard_D2_v3' size has 2 vCPUs and 8 GB of memory. You can find more information on specific size families or series by clicking the tab for that family and scrolling to find your desired size series.
Dv3-Series
The Dv3-series is a range of Azure VM sizes that offer a great balance of performance and cost-effectiveness. These sizes are available in various configurations, each with its own unique set of features.
You can choose from sizes like Standard_D2_v3, Standard_D4_v3, and Standard_D8_v3, which offer 2, 4, and 8 CPU cores respectively. Each of these sizes also comes with a corresponding amount of memory, ranging from 8 GB to 32 GB.
The Standard_D2_v3 size has 2 CPU cores and 8 GB of memory, making it a great option for small-scale applications. On the other hand, the Standard_D8_v3 size has 8 CPU cores and 32 GB of memory, making it more suitable for larger applications that require more power.
Temporary storage is also an important consideration when choosing an Azure VM size. The Dv3-series offers a range of temporary storage options, from 50 GB to 1600 GB. This can be especially useful for applications that require a lot of storage space.
Here's a summary of the Dv3-series sizes and their corresponding features:
The Dv3-series also offers a range of network options, including the ability to configure multiple NICs (Network Interface Cards) and network bandwidth. This can be especially useful for applications that require a lot of network traffic.
Sizes in Series
Azure VM sizes are categorized into different series based on their hardware and features. Each series has its own unique set of sizes, each with varying numbers of vCPUs and memory.
The sizes within a series are named consistently, with the "Standard_D" prefix followed by the number of vCPUs and a version number (e.g. Standard_D2_v3). The number of vCPUs and memory for each size can be found in the series documentation.
Here's a breakdown of the sizes in the Dv3-series:
The number of vCPUs and memory for each size can be used to determine which size is best suited for your application's resource requirements.
Sources
- https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview
- https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dv3-series
- https://learn.microsoft.com/en-us/azure/cloud-services/cloud-services-sizes-specs
- https://orangematter.solarwinds.com/2023/01/31/azure-virtual-machine-types/
- https://www.blinkops.com/blog/finding-and-resizing-azure-virtual-machines-with-low-cpu-usage
Featured Images: pexels.com