Barry Whittle - November 19, 2019

B-series vs. Dv3-series: How to Choose the Right Azure VM Instance

Azure has a variety of Virtual Machines (VMs) targeted at general use cases.  Organizations often look to a bake-off between B-series and Dv3-series.

Which is right for your organization? Emerge looks at the latest generation of each family as they offer up the best price/performance ratio.

Are your workloads consistent or in bursts?

Dv3-series VMs are meant for workloads that have consistent behavior, with a balance of CPU, RAM, and storage.

For a normal application server workload, Dv3-series is often the best choice, and many companies run their production applications on it.

Dv3-series is a good place to start if you’re not sure about the performance characteristics of your application. With balanced CPU, RAM, and storage, Dv3-series makes it easier to see if one of the three is maxing out and holding your application back (e.g., memory-intensive applications may be less suitable for D-series and more appropriate for memory-optimized Ev3).

B-series VMs are also aimed at general purpose workloads, but at a lower price point than Dv3-series. B-series VMs are burstable, and ideal for applications that are CPU-intensive in short bursts, as opposed to needing 100% CPU utilization all the time. Capacity is available when needed, but there’s an assumption (captured in the pricing structure) that it’s not needed all the time. 

Continuous integration servers or build servers are good candidates for B-series VMs.  These resources have lots of short bursts while a build is going on but are idle the rest of the time. Average CPU usage is low, but when the build is running, you’re getting great performance—allowing quick builds and happy developers.

Virtual desktop applications or line-of-business applications are also suitable for B-series VMs—longer bursts during business hours with not much going on during evenings and weekends.

An example of a bad fit is video transcoding. This has high CPU usage all the time, so it needs the full-time high performance of D-series VMs.

Do you need a smaller instance?

If your workloads can run on smaller instances and don’t require lots of memory, then B-series might be your best bet. The smallest B-series instance is Standard_B1ls, with 1 virtual CPU (vCPU) and 4GiB of memory. B-series instances have more options on the smaller end of the scale. All the smaller sizes, from Standard_B1ls to Standard_B1ms, have 1 vCPU with memory specs from 0.5 GiB to 2 GiB.

Once you get to Standard_B2ms, it’s the same as Standard_D2_v3, with 2 vCPUs and 8 GiB of memory. (To dig into the full numbers, check out Azure VM Instance types.)

Burstable B-series vs. general purpose Dv3-series

Let’s compare apples to apples by looking at Standard_D2_v3 vs. Standard_B2ms. Both have 2 vCPUs and 8 GiB memory.

Let’s start with cost. Here’s an On-Demand price comparison for the US West 2.

Instance

CentOS or Ubuntu Linux

Windows

Standard_ B2ms

$0.0832/hour

$0.0912/hour

Standard_D2_v3

$0.096/hour

$0.188/hour

 

It’s obviously cheaper to use the Standard_B2ms but there is something else to consider.

The amount you pay for a D-series instance is always the same—they’re designed with consistent workloads in mind. Burstable VMs work differently.

Burstable VMs are ideal for workloads that do not need full CPU performance all the time (e.g., web servers or dev build environments). The peaks and valleys of demand create a market in CPU credits.

When demand is beneath baseline performance, VMs are idle. When demand exceeds baseline performance, organizations spend those same VM credits.

Organizations wanting the preferential pricing of burstable VMs must judge the correct base CPU performance to commit to striking a balance between cost and CPU consumption.

If usage is below the CPU baseline, the VM will accumulate credits. Select too low a CPU base, and the VM will rarely accumulate credits and will be throttled at the CPU baseline: Pick too high a CPU base and the economics of Bs-series VMs don’t make sense.

Size

Base CPU Perf

Max CPU Perf

Initial Credits

Credits banked / hour

Max Banked Credits

Pay as you go

B1s

10%

100%

30

6

144

$0.0144/hour

B1ms

20%

100%

30

12

288

$0.0248/hour

B2s

40%

200%

60

24

576

$0.0496/hour

B2ms

60%

200%

60

36

864

$0.0912/hour

B4ms

90%

400%

120

54

1296

$0.182/hour

B8ms

135%

800%

240

81

1944

$0.365/hour

B12ms

202%

1200%

360

121

2909

$0.547/hour

B16ms

270%

1600%

480

162

3888

$0.73/hour

B20ms

337%

2000%

600

203

4860

$0.912/hour

Burstable VMs and their CPU performance parameters

A single CPU credit is equal to one vCPU running at 100% utilization for one minute, and each instance earns a set rate of CPU credits per hour.

A B2ms instance, for example, earns 36 CPU credits per hour. Comparing this rate to CPU utilization gives you a baseline performance (as a percentage) for each vCPU that’s the break-even point for earning or using CPU credits.

A B2ms instance has two vCPUs. Divide 36 by two, then 18/60 minutes, and you get a baseline rate per CPU of 30%. Azure blends this number into one “Base CPU perf of VM” value of 60%.

When the vCPU utilization is below 60%, more CPU credits are earned than used. Earned CPU credits cover future bursts.

Azure looks at the accrual model as a bucket of CPU credits, with a capacity based on how many credits an instance can earn in 24 hours, which is why Standard_B2ms can accrue up to 864 credits.

Accrued CPU credits are lost after specific events. When a VM is redeployed, and the VM moves to another node, accumulated credit is lost. If the VM is stopped/started, but remains on the same node, the VM retains the accumulated credit.

Do you have the data you need to decide?

In the end, as with all Azure decisions, cost and usage drive the right decision.

There are dozens of variables in play—from the cloud architecture to the number of users to your work schedule.

The only way to know for certain is to have full visibility into how you’re using Azure.

Apptio Cloudability and Azure VMs

Our cloud cost management platform gives you the Azure VM visibility you need, including features like Rightsizing that can make recommendations to lower your Azure VM costs without lowering performance.

When it comes to Azure VMs, the right instance choice isn’t a cut-and-dry decision.  

B-series VMs may look like the option to save money (without lowering performance), but loses out to D-series VMs when CPU baselines and insufficient CPU credits throttle performance.

And that’s really the key question for choosing between D-series and B-series: Which meets performance expectations and costs the least?

Once you have visibility the answer will be clear.

Our site uses cookies. By continuing to use our site, you are agreeing to our cookie policy.

Accept & Close