One of the most common complaints about Azure Virtual Machine (VM) pricing is that it’s too expensive for small workloads. For custom web applications you could share an App Service Plan, which is great if the app can be hosted within Azure App Service. However, if your workload needs a full VM, then there wasn’t really a great option unless you were willing to share a VM with multiple applications. This can pose many management difficulties. Thankfully, Microsoft has been listening to feedback of wanting an even more cost effective and affordable cloud for smaller workloads too. The Azure B-Series VM sizes are the answer to this, and instead being “just cheaper VMs” they offer an innovative advancement to Infrastructure as a Service (IaaS).

Burstable VMs

It’s been assumed for a long time that eventually the older VM instance sizes like the old A-Series would eventually just become cheaper, or possibly a new VM Series would be introduced based on some kind of cheaper CPU hardware. Instead, Microsoft has introduced the new B-Series that, stated simply, offers partial or fractions of a CPU to be allocated. That simple definition isn’t the entirety of how the new “burstable” B-Series VM sizes are implemented.

Many smaller workloads do NOT utilize the full CPUs allocated. These workloads are generally over provisioned and waste money. These are workloads like web server, small databases, as well as development, test or QA environments. Previously there weren’t any great hosting options if these required a dedicated VM.

These types of smaller workloads are great candidates for what Microsoft is referring to as “burstable” workloads. These will use a fraction of the CPU allocation most of the time, with only infrequent bursts of using 100% CPU for only a short time when necessary. It’s generally overboard to provision and pay for 100% CPU when it’s rarely utilized.

“Burstable” VMs will use a fraction of the allocated CPU power, then burst to use 100% infrequently for short periods of time.

Azure B-Series VM Sizes

As an answer to solve the hosting problem of “burstable” workloads, Microsoft has introduced the B-Series VM sizes. This essentially takes the ideas of “consumption plan” pricing from Serverless compute with Azure Functions and merges it with Virtual Machines (VMs). This allows for a form of “pay for what you use” to apply to partial CPU Cores in addition to full VM instances together in a way that really can help save hosting costs in a much more extreme way.

As a result, the B-Series VMs enable a far cheaper hosting option for lightweight VM workloads. The following screenshot from the Azure Portal shows the estimated cost per month in USD for the 6 B-Series sizes currently in Preview (at the time of writing this article.)

That’s right, a dedicated Azure VM for less than $5/mo!

Credit Banking and Bursting to 100%

The B-Series VMs work much differently than the other VM Series. You pay for a baseline of vCPU performance utilization with the number of vCPU cores allocated. Then you will accumulate and bank a number of credits during the time when you only need that baseline vCPU utilization percentage. Then when the VM needs to burst to 100% it can do so when necessary and spend the banked credits to do so.

The B1S VM size has 1 vCPU allocated with a baseline CPU performance of 10%. This means that generally the VM can use up to 10% CPU utilization of that single vCPU. Then, the B1S VM will bank 6 credits per hour up to a maximum of 144 credits that can be banked when utilizing less than the base performance. Then when the VM needs more than 10% CPU it can burst up to use more CPU performance and spend the banked credits to do so.

Looking at the math of the B1S VM size, it’ll be able to accumulate up to 144 credits in a 24 hour period at the rate of 6 per hour. This means that the B1S VM size will be able to burst to 100% CPU performance utilization once every 24 hours.

The B8ms VM Size has 8 vCPU’s allocated with a baseline CPU performance of 135%. This means the baseline allows for the utilization of 1 vCPu at 100% and a second at 35%, essentially. Then the B8ms can bank credits at 81 per hour. After credits have been banked, the B8ms size can then burst to 100% of it’s 8 vCPU’s once per day; that’s a total CPU performance utilization of 800% in burstable capacity!

Here’s a list of the 6 B-Series VM sizes available currently in the Preview:

Size vCPU Baseline Perf Burstable Perf Credits Banked / hr Max Banked Credits
Standard_B1s 1 10% 100% 6 144
Standard_B1ms 1 20% 100% 12 288
Standard_B2s 2 40% 200% 24 576
Standard_B2ms 2 60% 200% 36 864
Standard_B4ms 4 90% 400% 54 1296
Standard_B8ms 8 135% 800% 81 1944

The new B-Series is as cheap as less than $5 USD per month for the smallest size; the Standard B1s. This offers a dedicated Azure VM for you to use for small, lightweight workloads. Although, the Standard B8ms offers 8 “burstable” vCPU cores for approximately $139 USD per month offering a baseline of 135%. This means the B8ms at its base is similar to other Single vCPU Core VM sizes, but it has the additional capability to burst to 800% vCPU performance utilization and use all 8 Cores at 100% each for short periods.

This is really a great innovation to VM hosting in the Microsoft Azure cloud. It will certainly enable many more usage scenarios, as well as new utilizations for old workloads that have generally been over provisioned before the introduction of the B-Series VM sizes.

Posted by Chris Pietschmann

Chris is a Microsoft MVP and has nearly 20 years of experience building enterprise systems both in the cloud and on-premises. He is also a Microsoft Certified (MCSD) Azure Solutions Architect. He has a passion for technology and sharing what he learns with others to help enable them to learn faster and be more productive.


  1. When you say it can burst up to 100% once per day…. For how long is that? 1 minute? 1 hour?

    Also at what rate are credits burnt up and do you burn them quicker when using 100% than say 50% CPU?


    1. Chris Pietschmann September 20, 2017 at 8:17 am

      I was trying to simplify the explanation. Basically, you can accrue credits up to the max that can be accrued in a 24 hour period. So if you keep “spending” them to burst each day, then you can essentially do it “once per day.” MS hasn’t really said how “spending” credits works, or how accruing at a slower rate works either. We’ll have to wait until Ignite 2017 likely to hear more on how the accruing and spending of credits really works, and for how long you can burst up to 100% vCPU utilization.


  2. it is not declared how the credits are spent.
    “once per day” is a very strange definition. Does it mean “100% of cpu for one second?” or for a hour? or “one credit is one second of cpu burst?”


  3. Is this statement correct? “This means that the B1S VM size will be able to burst to 100% CPU performance utilization once every 24 hours”
    Surely it can burst to 100% depending on available credits?


    1. Chris Pietschmann September 19, 2017 at 12:25 pm

      Yes it would be on available credits. I was trying to simplify the explanation since you can only only accumulate up to 24 hours of credits at a time.


  4. I have a preview instance B8MS set to auto-stop and start. The available CPU credits build up each day but are wiped out when the machine is de-allocated. If the machine was left running this wouldn’t happen (or would it?). Why aren’t the credits built up retained across restarts?


    1. Chris Pietschmann September 19, 2017 at 12:24 pm

      You are correct. The credits only build up when the VM is running.


Leave a Reply