Azure AZ-103 : Understanding VM types in Azure

I currently find myself at a loose end so am back at the coal face of certification. last time I did AZ-900 which is a very light introduction to Azure. I really don't think you need to do AZ-900. Especially if you're a tech but it a very easy certification so you should probably do it for completions sake.

If you want to learn this stuff to actually use it and not just go get a shiny badge on your CV you should probably start with AZ-103.

I have been a tech for a lot of years now and most of this stuff isn't new to me. As a result some of this stuff I may just brush over, but I will link to resources as much as I can.

Types of VM

In Azure there are different types of VM that are physically architected with different use cases in mind. These are defined by a letter or combintion of letters.

VM Type Use case
A Best suited for entry level workloads (development or test)
B Ideal for workloads that do not need continuous full CPU performance
Dv2 The 2nd generation D family sizes for your general purpose needs
Dv3 The 3rd generation D family sizes for your general purpose needs
Dv4 The latest generation D family sizes for your general purpose needs
Ev3 The 3rd generation E family sizes for your high memory needs
Ev4 The 4th generation E family sizes for your high memory needs
F Up to 2X performance boost for vector processing workloads
H High performance compute VMs
L High throughput, low latency, directly mapped to local NVMe storage
M The latest generation M series sizes for extremely large databases or applications
N Designed for compute-intensive, graphics-intensive, and visualization workloads

Most of these are self explanatory with the exception of B & F which I think need a little more explanation.

B series

B is a burstable CPU. It manages burst-ability on a credits basis. When you are not using the CPU substantial and when you do need it gives you a performance boost over the machines general baseline. You can read more about how it works here

F-Series

This is scaled to be have a high CPU to memory count plus you get a portion of  fast SSD based on your CPU count specifically for your system pagerfile and any temporary files you may create. You can read more here

How to compare Azure VCPU's?

If you know a little about hardware then a little reseach will tell you exactly the CPU that Microsoft has used for each of the VM types however they have made it somewhat easier but creating something called the Azure Compute Unit (ACU). This is a metric made up Mircosoft to try and make some sense of the compute power of each VCPU they offer. You can find a list of the VCPU's microsoft currently have on here.

On its surface its pretty simple. A VCPUwith a ACU of 200 is twice the powerfull as a VM with an ACU of 100.  However as with anything Microsoft it's not quite that simple there are a few things that can effect your VMs ultimate performance and its worth being aware of them as they are totally beyond your control.

CPU Boosts

First of all Microsft offer CPU's that take advantage of the various boost features offered by AMD and Intel. This means that for certain workloads and in certain conditions a CPU performance may boost as much as 30%. But this also means that other user workloads on that host can effect this boost.  VCPU's that boost are shown my giving an ACU range and either a single asterix (*) or double asterix (**) next to the ACU rating depending on if its an Intel or AMD CPU.

My personal opnion is if the base VCPU ACU doesn't meet your requirements you should probably avoid VM types that use this feature otherwise you cannot guarantee you VM's meet this performance level. I tend to architect at this base line and treat any boost as an unexpected bonus.

HyperThreading

Secondly there is the metric "vCPU: Core" to concider.  This ratio indicates that the underlying CPU on the hosts are hyperthreaded. This is shown by a range of ACU and 3 asterix (***) next to the ratio.

In my opnion these VCPU offer a more reliable performance that the boost we mention previously. The Hyperthreaded cores are predictable so the ACU you end up with over time is more or less predictably in the middle of the ACU range.

Regional limitations.

Once we understand the different types of VM it's worth knowing that All Azure VM types are not available in all locations. Microsoft provide a handy matrix to show what is available where.

Pairs

Pairs is a good topic with some more advanced features so I will give it its own page eventually, however for now just know that ideally for DR purposes it's best to stick to pairs.

  • Azure updates are never done on members of the same pair at the same time. That means that if an update should cause issues you have the other pair member to fall back on.
  • In the event of an outage Microsoft will prioritize the restoration of services to a single pair member, and once that is up the other pair member will be low priority until all the effected  pairs have at least one active member.
  • Pairs have low latency links, replicated storage and other fancy things for you to take advantage of.