How to get the best virtual machine deal

When you purchase a car, you will know what you are getting in terms of the engine and therefore performance.

For example, if you are purchasing a Ford Escape (Kuga for you Europeans), you might pick between an 1.5L EcoBoost I-4 engine with 181hp or a more powerful 2.0L EcoBoost I-4 with 250hp.

You can expect that a car with a 250hp engine will cost more than the same car with a 181hp engine.

Does the same thing apply in the cloud?

Are virtual machines that are of the same size/series (for example Standard_B4ms) providing the same performance (considering that the cost is the same!)?

Hint…the answer is No as otherwise, I would not write this blog article. đŸ™‚

Let’s explore this further with Standard_B4ms as an example.

We will be using Geekbench to determine how fast each variation of the size/series is. Geekbench is a piece of software that runs multiple tests against a virtual machine to determine its performance.

You can find the Geekbench scores for the different Azure VMs at:

https://www.cloudscrooge.com/azure-cpu-benchmarks/

After deploying a bunch of B4ms virtual machines, I found that you can end up on one of four different Intel-based chipsets:

1. Intel Xeon E5-2673 v3 @ 2.4 GHz (Haswell)

Release: Q3 2014

Geekbench Single-Core: 639.43

2. Intel Xeon E5-2673 v4 @ 2.3 GHz (Broadwell)

Release: Q1 2016

Geekbench Single-Core: 654.25

3. Intel Xeon Platinum 8171M @ 2.1 GHz (Skylake)

Release: Q3 2017

Geekbench Single-Core: 681.38

4. Intel Xeon Platinum 8272CL @ 2.6 GHz (Cascade Lake)

Release: Q2 2019

Geekbench Single-Core: 779.68

There is around a 20% difference in performance between the slowest chipset and the fastest chipset, and the cost is the same!

…give me the fastest option!

With the B4ms, here is what you don’t want:

Here is what you want:

To get the fastest chipset, you can (in Windows):

1. Provision multiple VMs.

2. Check the CPU type by running (one of these):

  • Task Manager
  • Systeminfo
  • WMIC CPU Get DeviceID, NumberOfCores, NumberOfLogicalProcessors
  • gwmi win32_Processor

3. If the CPU is an Intel Xeon Platinum 8272CL, then keep the virtual machine and know that you are getting better performance than most, for the same cost.

4. If the CPU is something else, then delete or deallocate/start the virtual machine. Note that when you deallocate and then start a virtual machine, you can end up on different (faster/slower) hardware.

Key takeaway

  • When deploying virtual machines on Azure; what hardware (and performance) you end up with is a bit of a lottery, even when the virtual machines are supposed to be identical as they cost the same.

You can use https://www.cloudscrooge.com/azure-cpu-benchmarks/ to find out what type of CPUs are used for different VM series and what the performance differences are. Then aim to get the fastest available option (and enjoy a 20% performance increase without paying anything extra!).