The "CPU Burst" B-Series Azure Virtual Machine
This post contains information about a new ultra-low-cost series of Azure virtual machine that is perfect for light workloads with intermittent requirements of higher CPU utilization.
Many headlines are occupied with “more” and “bigger”. It is easy to get excited about machines with 128 virtual processors, 2TiB RAM, huge amounts of flash disk capacity, or GPUs that are designed for running neural nets. But in reality, most workloads are small. A cloud like Azure is like a paper clip factory. It makes its money from producing tons of the small stuff.
To date, the lowest cost virtual machines that one might consider for production workloads are the A_v2-Series. You might consider the Basic A-Series but it has some limitations, such as disk speed and the lack of compatibility with the Azure load balancer (NAT and load balancing rules). The A2_v2 with 2 cores and 4GiB RAM costs approximately $84.08 per month in the West US 2 region.
That might not sound like much but if that machine is lightly used, that relatively low price can rule out Azure as an option.
Over in AWS, you can find something called a T2 Instance. This is a low-cost virtual machine that makes itself more affordable by offering less CPU performance per virtual processor. The virtual machine earns credits by staying under a processor utilization cap. Should the virtual machine go over that cap, it burns those credits. Once there are no credits, the host reduces CPU performance back down to the level of the cap.
This approach and the low cost of the T2 Instance makes it perfect for some low-end workloads, such as brochure websites, dev/test, and light application servers.
I first became aware of the B-Series when pricing up some workloads for a customer. This was before Microsoft eventually announced the new Azure virtual machine type. The Azure VM pricing site showed a previously unannounced type of Azure virtual machine called the B-Series. The following table lists the pricing of the B-Series in the Azure West US 2 region:
The costs are very low, much lower than the equivalent (2 cores and 4GB RAM) A_v2- or the F Series; A B2S is just $24.56 instead of $84.08 for the A2_v2 or $142.85 for the F2. You can also tell from the machine names that Premium (SSD) storage is being used. The machines are all “S” variants.
Microsoft described the B-Series as being useful for machines were:
… workloads don’t require the use of the full CPU all the time but occasionally will need to burst to finish some tasks more quickly.
… test servers, low-traffic web servers, small databases, micro services, servers for proof-of-concepts, build servers and code repositories …
There was no more documentation available at the time but Microsoft updated the VM series/sizes documentation a few days later. Thanks to this, we know that the B-Series uses a similar system to the AWS T2 Instance. A B-Series virtual machine has a per-core base performance level, which is a percentage of each core. If the virtual machine remains under this level, it will earn credits up to a certain level. These credits can be burned to allow the virtual machine to burst beyond this per-core base performance level, up to 100 percent of the potential of the underlying physical core until either the workload subsides or credits run out.
A few days later, Microsoft finally announced the new B-Series and stated that it runs on hosts with Intel Haswell 2.4 GHz E5-2673 v3 processors or better processors. The E5-2673 v3 is what is used on the D_v2- and F-Series hosts, so the B-Series is a throttled FS-Series machine. So this really is a cheap way to run a workload that does sit idle but can offer real processing power during those few windows when it is required.
According to Microsoft’s documentation, the preview for the B-Series is limited to 4 regions at this time:
- West US 2
- West Europe
- East US
- Asia Pacific Southeast
The preview is still private to some degree. At the time of writing, I had the option to select a B-Series virtual machine in my Azure subscription. I could not deploy it because I had a max quota of 0 processors of this series in my subscription. Microsoft makes it possible to enter the preview but to do so you must request a quota increase (via a free billing support ticket) for the core type (B-Series) in one of the above regions for your subscription.
The B-Series has the potential to become one of the most widely adopted virtual machine types in Azure but adoption in production might be slow at first. Most deployments in Azure, that I see at least, are for new applications rather than “lift and shift”. So it is rare that people understand the performance or usage profile of their planned machines. I think, armed with empirical data from performance monitoring, people will be able to deploy A_v2, D_v2, F-Series and such, and later resize suitable “bursty” machines to the B-Series to save money without compromising on performance.