Choosing an Azure Virtual Machine -- April 2017
This post will explain how to select an Azure virtual machine (VM) series and size. This article includes updates to past versions of this post such as N-, H-, and L-Series VMs, as well as using the Azure Compute Unit (ACU) measurement to compare processor performance.
Order from the Menu
Azure is McDonald’s. It is not a Michelin Star restaurant. You cannot say, “I’d like a machine with 4 cores, 64GB RAM, and a 200GB C: drive.” That simply is not possible in Azure. Instead, there is a pre-set list of series of machines. Within those series, there are pre-set sizes.
The C: drive is always 127GB unless you upload your own template. No matter what the pricing pages claim as the disk size, it is actually the size of the temp drive. Any data you have goes into a data drive, which you specify the size of. Therefore, you control the cost. Remember that the storage (OS and data disks) costs extra!
Sizing a Virtual Machine
There are two things to consider here. The first is common sense. The machine will need as much RAM, CPU (see the ACU section later in this article), and disk space as your operating system and service(s) will consume. That is no different than how you sized on-premises physical or VMs in the past.
The other factor of cloud-scale computing is that you should deploy an army of ants, not a platoon of giants. Big VMs are extremely expensive. A more affordable way to scale is to deploy smaller machines. Smaller machines can share a workload. They also can be powered on/off where billing starts/stops based on the demand or you can use the Scale Sets feature.
Microsoft created the concept of an ACU to help us distinguish between the various processor and VM series options that are available to us in Azure. The low-spec Standard A1 VM has a baseline rating of 100 and all other machines are scored in comparison to that machine. A VM size with a low number offers low-compute potential and a machine with a higher number offers more horsepower.
Note that some scores are marked with an asterisk. This represents a VM that is enhanced using Intel Turbo technology to boost performance. The results from the machine can vary depending on the machine size, the task being done, and other workloads also running on the machine.
Choosing a VM Series
Browse to the HPE or Dell sites and have a look at the standard range of rack servers. You will find DL360s, R420s, DL380s, R730s, and so on. Each of these is a series of machines. Within that series, you will find a range of pre-set sizes. Once you select a series, you find the size that suits your workload. The per-hour price is charged per minute of running. You will see this price listed. Let’s take a look at the different series of Azure VMs. Please remember that not all of the series are in all regions.
VM Series Versioning
In the server world, Dell replaced the R720 with an R730. We stopped buying R720s and starting buying R730s. HPE replaced the DL380 G6 with a DL380 G7. That was replaced with the Gen 8. We stopped buying the older machine and started buying the newer machine.
The same thing happens in Azure. As the underlying Azure fabric improves, Microsoft occasionally releases a new version of a series. For example, the Dv2-Series replaced the D-Series. The Standard Av2-Series replaced the Standard A-Series.
The older series is still available but it usually makes sense to adopt the newer series. Late in 2016, Microsoft changed pricing so that the newer series was normally more affordable than the older one.
If you are reading this post, then you are deploying new services/machines. You should be using the latest version of a selected series. I will not detail older/succeeded series of machines in this article.
A code is normally used in the name of a VM to denote a special feature in that VM size. Examples of such codes are:
- S: The VM supports Premium Storage (SSD). It also supports Standard Storage (HDD), which is the normal storage used.
- M: The size in question offers more memory (RAM) than usual.
- R: An additional Remote Direct Memory Access (RDMA) NIC is added to the VM. This offers high bandwidth, low latency, and low CPU impact data transfers.
A-Series Basic (ACU Not Available)
A is the start of the alphabet and this is the entry level VM.
This is the lowest and cheapest series of machines in Azure. The A-Series (Basic and Standard) uses a simulated AMD Opteron 4171 HE 2.1GHz virtual processors. This AMD processor was designed for core-scale with efficient electricity usage, rather than for horsepower. It is fine for lighter loads like small web servers, domain controllers, and file servers.
The Basic A-Series machines have some limitations:
- Data disks are limited to 300 IOPS each.
- You cannot load balance Basic A-Series machines. This means you cannot use NAT in an ARM/CSP deployment via an Azure load balancer.
- Auto-Scale is not available.
- The temp drive is based on HDD storage in the host. Everything outside of the A-Series Basic and Av2-Series Standard uses SSD storage for the temp drive.
- Only Standard Storage is used. Everything outside of the A-Series Basic and Av2-Series Standard offers Premium Storage as an option. You will need to select an S-type, such as a DS_v2 VM.
I like this series for domain controllers because my deployments are not affected by the above. It keeps the costs down.
Av2-Series Standard (ACU: 100)
This is the most common machine that I have encountered in Azure. Using the same hardware as the Basic A-Series, the Standard Av2-Series has some differences:
- Data disks are limited to 500 IOPS, which is the norm for Standard Storage (HDD) accounts.
- You can use Azure load balancing.
- Auto-Scaling is available to you.
These are the machines I use the most. They are priced well and offer good entry-level worker performance. If I find that I need more performance, then I consider Dv2-Series or F-Series.
Dv2-Series (ACU: 210-250*)
D is for Disk in the D-Series.
The key feature of the Dv2-Series machine is disk performance. It can offer more throughput (Mbps) and speed (IOPS) than an F-Series VM. It is considered an excellent storage performance series for workloads such as databases.
Additional performance is possible because this is the first of the Azure machines to offer an Intel Xeon processor, the Intel Xeon E5-2673 v3 2.4GHz CPU. It can reach 3.1GHz using Intel Turbo Boost Technology 2.0.
The Dv2-Series also offers an S-option which supports Premium Storage. Microsoft recommends the DSv2-Series for SQL Server workloads. That has led to some of my customers asking questions when they get their first bill. Such a blanket spec generalization is unwise. Some SQL workloads are fine with HDD storage and some will require SSD. If you need lots of IOPS, then Premium Storage is the way to go. Do not forget that you can aggregate Standard Storage data disks to get more IOPS.
G-Series (ACU: 180 – 240*)
G is for Goliath.
The G-Series VMs offer much more RAM per core than any of the other VMs in Azure. They go all the way up to 448GB RAM based on hosts with a 2.0GHz Intel Xeon E5-2698B v3 CPU. If you need a lot of memory, then these are the machines to choose.
The G-Series also offers more data disk capacity and performance than the much more affordable Dv2-Series.
F-Series (ACU: 210-250*)
The F-Series name reminds me of a pickup truck and I think of an all-rounder with great horsepower.
The F-Series uses the same Intel Xeon E5-2673 v3 2.4GHz CPU as the Dv-2 Series with the same 3.1GHz turbo boost. It does have a slightly lower disk performance.
Microsoft talks about this being a good series for web servers that require performance. I see the F-Series as being the choice when you need something with more CPU performance than an A-Series machine. It does not have as much focus on disk performance as the Dv2-Series.
N-Series (ACU Not Available)
The N name stands for NVIDIA and that is because the hosts will have NVIDIA chipsets. They are presented directly to the VMs using a new Hyper-V feature called Discrete Device Assignment (DDA).
There are two versions of the N-Series:
- NV-Series: These machines run on hosts with NVIDIA’s Tesla M60 GPU and are suited for VDI (Citrix XenDesktop for Azure). They are also suited for session-based computing (Remote Desktop Services and Citrix XenApp for Azure) where graphics performance is important.
- NC-Series: Hosts with the NVIDIA’s Tesla K80 card run VMs that are designed for CUDA- and OpenCL workloads. A few examples of this are scientific simulations, ray tracing, and more.
H-Series (ACU: 290 – 300*)
The H is for SAP Hana or high-performance computing (HPC).
The H-Series VMs are sized with a large number of cores and run on hardware with Intel Haswell E5-2667 V3 3.2GHz processors and DDR4 RAM.
There are two core scenarios for the H-Series:
- HPC: If you need burst capacity for processing lots of data, then the H-Series is perfect for you. R variants offer 56Gbps Infiniband networking for moving data around quickly when doing massive parallel computing.
- SAP Hana: The H-Series appears to be the recommended series for running this large enterprise workload.
Ls-Series (ACU: 180 – 240*)
If you want low-latency storage, then the L-Series is for you.
We do not have too much detail but it appears that the Ls-Series runs on the same host hardware as the G-Series. Keep in mind, this is often referred to as the L-Series. The focus is not on a scale as it is on the G-Series. The focus is on low-latency storage.
The VMs of the Ls-Series use the local SSD storage of the hosts for data disks. This offers a much faster read time than can be achieved with Premium Storage (SSD) storage that is shared by many hosts across a network. This is much like a flash-based SAN.
This is a very niche machine series. It is expected that this type will be used for workloads where storage latency must be as low as possible, such as NoSQL.
More to Come
Microsoft has announced that a new series and a successor to an existing series are both on the way. Microsoft refers to these machines as being the “next generation of Hyper-Threaded virtual machines.”
- Dv3-Series: This new version of the D-Series will offer better performance and the cost will be 28 percent lower than the existing Dv2-Series.
- Ev3-Series: This new series is referred to as a memory optimized series, offering up to 432GB RAM. We will have to wait to hear how this machine is differentiated from the G-Series.
Both of these series will be based on hardware with Intel Broadwell E5-2673 v4 2.3GHz processors, which enables machine sizes up to 64vCPUs.