Choosing the Correct Azure VM Size for Your Workload

Eric Smith

Published On: September 9, 2020

Categories: Azure, Virtualization 0

Home Is Where the Heart (and Compute) Is

Selecting the proper Azure virtual machine (VM) size is not unlike trying to find the right fit for your family when purchasing a house or finding an apartment.

If you have a family of six, with four kids, that one-bedroom condo near the city center might be conveniently located near great shopping and restaurants, but it’s probably not a practical fit for your large troop. Conversely, if it is just you and your significant other, young and free, you might not need or want the 4,000 square foot McMansion in the 'burbs.

It’s all about balance. You need to balance the quality of life you want with what you’re willing to spend, while also considering the potential your family has for growth.

Although there are the obvious home attributes such as square footage and location, there are also plenty of subtle home attributes that can affect your decision. For example, some families have older children who drive, so having a three-car garage or expanded driveway would be super convenient for them. Some families have a live-in elderly parent, so they need a downstairs bedroom with a full bath. In a slightly different vein, for some people, the ability to quickly get out of a lease or sell a home might be of critical importance.

You might see where I am going with this analogy. Not all workloads are equal and, just like any family, their needs can be unique. So, finding the right home for your workload is critical. And, just like a home, not all the qualities of the VM are apparent at first glance. Let’s dig into the different types and sizes of Azure VMs and weigh some of the options available when considering where to place your workload.

The Azure Compute Unit Is Your Square Footage

Before we discuss the different types of Azure VMs, let’s talk about the mysterious Azure compute unit (ACU). Microsoft uses the ACU concept to help you compare computing performance across the different types of VM SKUs.

The Small (Standard_A1) VM serves as the baseline and is assigned 100 ACUs. All other SKUs are assigned an ACU number that represents their comparable performance when running the standard benchmark.

In my choosing a VM is like choosing a house metaphor, ACUs can be thought of as square footage. Square footage is a fundamental attribute of the housing decision-making process. Alongside the number of bedrooms and bathrooms, square footage is often core to your decision-making process. Although you can certainly outfit a 1 bedroom, 500-square-foot apartment with the latest and greatest, you are still ultimately bound by those 500 square feet. The ACU is your square footage and is a fundamental trait for you to consider when choosing the right size of Azure VM for your workload.

Azure VM Types

Okay, let’s talk about the different types of Azure VMs that are available. Azure has a myriad of options to completely overwhelm you when you are trying to create a VM. Just kidding (mostly).

Options are great to have, but just like when you are house shopping, it’s important to differentiate between the things you want and the things you absolutely need when you are choosing an Azure VM size. In addition to evaluating the square footage (ACUs), these six categories of Azure VMs are a good place to start to narrow down your search. Let’s review each category, stretch our housing metaphor, and look at some common use cases.

Azure VM Type

Description from Microsoft Documentation

Additional Notes

General purpose

ACU Range: 50-210

Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.

General purpose VMs will cover many use cases. There are plenty of sizes and series to choose from. You can think of general purpose VMs as the stock or tract-style homes designed for the masses in purpose-built neighborhoods. You could also think of them as a temporary rental or an apartment that you plan to transition out of eventually. In most cases, they will satisfy your immediate needs.

If you are running dev/test workloads, I recommend you start here. If you are unsure how long you will use the VM, start here. Unless you really need and understand the options available with the other VM types, start here.

Compute optimized

ACU Range: 195-210

High CPU-to-memory ratio. Good for medium traffic web servers, network appliances, batch processes, and application servers.

If ACUs represent square footage in the VM world, compute optimized VMs could be thought of as a great deal for the refined consumer who is most interested in price per square foot.

Compute optimized VMs are stars when it comes to computational performance, as evidenced by their 195-210 ACU stat. If you plan on running an application that is typically CPU bound, this is a VM size to consider.

Memory optimized

ACU Range: 160-260

High memory-to-CPU ratio. Great for relational database servers, medium to large caches, and in-memory analytics.

Memory-optimized VMs are the custom homes of VMs, as they are designed for the workloads of memory-heavy applications. They are built for the consumer who has a particular purpose in mind and needs that exceed the general-purpose options.

The high memory-to-CPU ratio means that when compared to a general purpose VM with the same vCPU count, memory optimized VMs will have a much larger memory allocation. Memory-optimized VMs also have an ACU performance well above the general purpose VMs. Just like a custom home’s price when compared with a stock home’s price, you will pay for the privilege of a great fit.

If you are landing a memory intensive, business critical production application on an Azure VM, this is the Azure VM type to consider.

Storage optimized

ACU Range: 150-175

High disk throughput and IO ideal for Big Data, SQL, NoSQL databases, data warehousing, and large transactional databases.

When you build a custom home, you likely are not willing to compromise on certain aspects. After all, why go through the trouble and spend the money if you can’t address the top needs on your list?

In the case of a workload destined for storage optimized VMs, that top need is disk performance and throughput. Your home needs that 4-car garage, giant hallways, huge closets, and quick access to it all. Although you could try and retrofit those needs after the fact, storage optimized VMs come pre-configured to be your workhorses for Big Data applications, SQL, NoSQL databases, data warehousing, and large transactional databases.

GPU

ACU Range: Not published

Specialized virtual machines targeted for heavy graphic rendering and video editing, as well as model training and inferencing (ND) with deep learning. Available with single or multiple GPUs.

Are you familiar with floating homes? What about homes made entirely of glass? Just like these specialized home types, GPU optimized VMs fill a very specific niche. The workloads that benefit from this VM type include things that up until recently you would not consider outsourcing to a cloud vendor. The major cloud providers have been closing this gap, and the GPU specialized VMs are Azure’s answer to this type of need.

Targeting rendering and video editing workloads, as well as certain types of model training that have GPU intensive operations, this class of VM is certainly specialized. Other usage might include cryptocurrency mining and exercising deep learning algorithms.

High performance compute

ACU Range 199-315

The fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).

This is the castle class of VMs in Azure. The castle is a good fit for the analogy, in that many castles are made up of multiple buildings working in concert to achieve a goal. This class of VM is optimized for high levels of memory and network bandwidth and are designed to participate in clustered environments as part of distributed High-Performance Computing (HPC) applications.

Example usage includes the modeling of weather patterns, fluid dynamics, and solving for other complex engineering mathematical models such as the finite element method.

The Sizes Available for Each Type of Azure VM

There are numerous sizes available for each type of VM. Although most of the sizes reflect scaled compute, memory, and disk power, there are a few sizes that are interesting in their focus. Let’s talk about a couple of those types of VMs.

B-series Burstable VMs

B-series VMs, also known as burstable VM sizes, are a general-purpose type of VM size and are a great concept. B-Series VMs are like living in a commune or living with your extended family that occasionally goes on vacation and leaves you the entire house. They are designed for workloads that do not need the full performance of the CPU continuously. You build up credit over time with these VMs. This credit can be cashed in or used during the times when your workload requires it. Hence, the “burst.” There is a bit of calculation and management overhead when deciding if this type of VM will work for your workload, but Azure exposes metrics to help you understand both your consumed credit and banked CPU credit.

DCsv2-series

DCsv2-series VMs are part of the Azure confidential computing solution and offer additional layers of confidentiality by encrypting data in use. There are several partner solutions that help you realize the value. Example usage includes hospital patient record analysis, participation in block-chain transaction verification, and secret management tooling. DCsv2-series VMs fit in the housing analogy as the bank vault or highly customizable secure facility (albeit ran by a benevolent trusted third party). As the topic of data privacy rightfully continues to be a hot issue for consumers, this is an attractive option for companies to consider for workloads that require a high level of security.

Wrap Up

There is a lot to consider when choosing the right Azure VM for your workload. Are you okay with the stock options available or does your workload require customization? Hopefully, this blog post will help you during the decision-making process. Think about VM workloads like you would a home purchase and remember to weigh the characteristics of your workload and your budget to ultimately find the right fit to satisfy your goals.

Eric Smith is the DevOps Engineering Manager at SentryOne. Eric's team focuses on optimizing the process and tooling used by our delivery teams and evangelizes DevOps practices at SentryOne. He originally joined the SentryOne team in 2011 as an intern. Eric has had the pleasure to grow with the company, and has held a variety of roles including Support, Documentation, and Quality Assurance. Eric is a proud veteran of the United States Air Force, earning the rank of Staff Sergeant during his six-year term as an Avionics maintainer for F15s (AFSC 2A0X1A).


Comments