Azure VM SKU Architecture

What is Azure VM SKU?

An Azure VM SKU is a Predefined Virtual Hardware Configuration that specifies the VM’s Compute Resources and Capability Limits, including vCPUs, Memory, Storage, Networking, and Supported Platform Features.

Customers cannot alter the resources defined by a SKU; they can select a different SKU that meets their resource and workload requirements.

Azure does not expose a Virtual Server as Individually Configurable CPU, Memory, Networking, and Host-Hardware Components. Instead, Microsoft exposes predefined VM Sizes (SKUs) built within VM families and Size Series.

Azure VM Sizing is not the same as On-Premises VM Sizing

With traditional On-Premises Virtualization, Administrators commonly think of Virtual Hardware as Independently Configurable Resources.

For Example, an Administrator might create a VM with: 4 vCPUs + 8 GiB RAM

Later, if the Application requires Additional Memory, the Administrator may change the VM Configuration to 4 vCPUs + 16 GiB RAM

The Hypervisor allows the Administrator to modify the amount of Memory Assigned to that VM, assuming sufficient Host Resources and applicable Platform/Guest OS requirements.

Azure Virtual Machines work differently.

Azure does not allow you to independently select arbitrary amounts of vCPU and Memory for a VM. Instead, Microsoft provides predefined VM sizes/SKUs, and each SKU defines a particular Resource Configuration and Capability Envelope.

For Example:

Configuration Model

On-Premises Hypervisor

Azure VM

Select 8 GiB RAM

Yes

Select a SKU containing 8 GiB

Later add another 8 GiB RAM

Yes

No — RAM is not independently added

Keep exactly the same vCPU configuration

Yes

Depends on whether another suitable SKU exists

Increase CPU independently

Yes

Select another VM SKU

Add physical/Virtual Hardware Characteristics individually

Yes

Limited by the selected SKU

Hardware Configuration Model

Administrator-Defined

Microsoft Predefined SKU

Need more memory

Yes - Modify VM memory allocation

Resize to an appropriate VM SKU

Need more vCPUs

Yes - Modify CPU allocation

Resize to an appropriate VM SKU

 

Example: You Cannot Simply “Add Another 8 GiB”

Suppose you deploy an Azure VM using a SKU providing: 2 vCPUs + 8 GiB RAM

Six months later, the application needs 16 GiB RAM.

The Azure design decision is not: “Edit the VM and add another 8 GiB of RAM.”

Instead, it is:

Find another Azure VM SKU that provides the required Memory, CPU, Storage, Networking, and Feature Capabilities, and Resize the VM to that SKU. The Resize requires a VM Restart. If the target SKU is not available on the VM’s current Hardware Cluster, the VM must be Stopped and Deallocated before it can be resized.

That distinction becomes especially important because moving to another SKU can change more than Memory. Depending on the Source and Destination Sizes, the new SKU can have different vCPU Counts, Temporary Storage, Maximum Data-Disk Counts, Network Bandwidth, NIC Limits, Premium Storage Support, Accelerated Networking Capabilities, Processor Architecture/Generation, and other Characteristics.

Treating Azure VM CPU and Memory like On-Premises Hypervisor CPU and Memory can turn a simple Capacity Requirement into an Unplanned Production Outage. Additional Memory requires selecting another VM SKU and Resizing the VM, which introduces VM Interruption and may require Deallocation, Change-Management approval, and a maintenance window.

The Key Design Principle

On-Premises:
Physical Host Capacity Hypervisor Administrator Allocates Resources VM

Azure:
Microsoft Datacenter Capacity Azure Region Available VM Families/Series/SKUs Administrator selects SKU VM

In Azure, you do not build a VM by independently assembling CPU and RAM resources. You select a predefined VM SKU whose Resource Configuration and Capabilities Satisfy the Workload Requirements.

Therefore, Azure architects should size for both current requirements and expected growth.

If you know an application has 8 GiB today but is likely to require 16 GiB soon, the question shouldn't simply be Can I add another 8 GiB later?

The Planning Question Becomes:

“What SKU will I resize to when the workload outgrows this SKU, and is that target SKU available and compatible with my deployment?”

How Azure VM SKU Architecture Works

The hierarchy can be thought of as:

Physical Azure Host Hardware

VM FamilyWorkload/Hardware Class

VM Size SeriesHardware Generation and Capability Set

VM Size / SKUPredefined Resource Configuration

Your Azure VM

Microsoft's terminology matters here. A VM Family is the Broad Workload Category. A Size Series represents a particular Hardware/Capability Generation within that Family. The VM Size (SKU) is the Actual Selectable Configuration that determines resources such as Processing Power, Memory, Storage Capabilities, and Network Bandwidth.

For Example, the current DADSV7 Series provides Predefined Sizes:

Dadsv7 is a structured Azure VM-Series Name. You can break it down like this:

Character

Meaning

D

D-family — General Purpose VM family

a

AMD processor

d

Local temporary disk is included

s

Premium Storage capable

v7

Version / generation 7 of the series

 

 So:

Dadsv7 = D-family + AMD CPU + Local Temporary Disk + Premium Storage Support + Generation 7

For an individual VM SKU, Microsoft then inserts the size/vCPU designation.

For Example: Standard_D8ads_v7

Can be read as:

Standard Azure VM SKU prefix
D
General Purpose Family
8
8 vCPUs
a
AMD Processor
d
Local Temporary Disk
s
Premium Storage Capable
v7
Seventh-Generation Series

So, there is an Important Distinction:

 Dadsv7 = VM Size Series

Standard_D8ads_v7 = specific VM Size/SKU within that Series

VM Size / SKU

vCPU

RAM

Standard_D2ads_v7

2

8 GiB

Standard_D4ads_v7

4

16 GiB

Standard_D8ads_v7

8

32 GiB

Standard_D16ads_v7

16

64 GiB

Standard_D32ads_v7

32

128 GiB

Standard_D64ads_v7

64

256 GiB

Standard_D160ads_v7

160

640 GiB

 

Those aren't merely convenient Microsoft Pricing Packages. They are defined as Virtual Hardware Profiles. The DADSV7 Series, for Example, specifies not only CPU and Memory but Local-Storage Limits, Remote-Disk Limits and throughput, NIC Limits, Network Bandwidth, supported Disk Types, and Network-Interface Technology.

Why you cannot simply add 8 GiB of RAM to an existing Azure VM SKU

Suppose you have:

Standard_D4ADS_v7 - 4 vCPU + 16 GiB RAM and you decide that the Server needs another 8 GiB.

In a Physical Server you might think: 16 GiB + 8 GiB = 24 GiB

Azure doesn't expose that Model to you.

You aren't managing DIMM slots on Microsoft's Physical Server. Your VM has been allocated the resources defined by Standard_D4ads_v7.

So, there isn't an Azure Operation equivalent to: Add 8 GiB RAM to this VM.

You instead select another available VM Size whose Predefined Resource Profile satisfies the requirement.

For Example:

D4ads_v7 4 vCPU / 16 GiB
Resize
D8ads_v7
8 vCPU / 32 GiB

Notice an Important Consequence: you may want Only More Memory, but changing Size can simultaneously change CPU Count and other Limits because those Resources are Packaged Into predefined VM Sizes.

If you need a different CPU-to-Memory Ratio, you can instead select a Memory-Optimized Family/Series. For Example, Microsoft's E-Series offers substantially more Memory per vCPU; an E4s_v4 provides 4 vCPUs and 32 GiB RAM.

The Design goes far beyond CPU and RAM

A VM SKU can determine or constrain much more than these two resources:

Resource / Capability

Controlled or Limited by VM Size/Series?

vCPU Count

Yes

RAM

Yes

CPU Architecture/Vendor

Series-Dependent

Maximum Data Disks

Yes

Storage IOPS/throughput limits

Yes

Local temporary storage

Yes

Maximum NICs

Yes

Network Bandwidth

Yes

Premium Storage Capability

Series/SKU-Dependent

Ultra Disk Compatibility

Series/SKU-Dependent

Accelerated Networking

Series/SKU-Dependent

RDMA

Specialized Series

GPU

Specialized N-Family SKUs

Confidential-Computing Capabilities

Specialized DC-Family SKUs

CPU Architecture Such as x86 vs Arm

Series-Dependent

 

This is why “VM Size” means considerably more than CPU + RAM. Microsoft's Naming Convention Itself Encodes Family, vCPU Count, additive capabilities, accelerator type in Applicable Specialized SKUs, Memory Capacity in applicable M-Series Sizes, and Generation/Version.

Why Microsoft Designed Azure this way

The Architecture provides Microsoft with a Standardized Abstraction between your VM and Microsoft's Physical Datacenter Hardware.

Your request:

Standard_D8ads_v7 rather than:

Give me eight CPU threads from this Exact Processor, Four Particular DIMMs, these Physical NIC Queues, and these Pcie Devices.

Azure's fabric/platform handles placement onto compatible physical infrastructure.

This abstraction is important because a series can sometimes run across more than one underlying Processor Generation or Hardware Implementation. Microsoft's A-Series Documentation, for Example, explicitly lists several possible Intel Xeon Processor Generations and says the Size is Controlled to provide consistent Processor Performance regardless of the underlying Hardware on which that instance is deployed.

So, distinction is:

The SKU defines the Resource and Capability contract presented to the Customer; it does not necessarily Identify one unique Physical Server Configuration underneath it. This is the most Important Architectural Concept.

What Happens When You Resize

When you request a different VM Size, Azure has to determine whether the Physical Cluster currently Hosting the VM can satisfy that new SKU.

Microsoft Documents Two Important Cases.

If the requested VM Size is available on the Current Hardware Cluster, Azure can Resize the Powered-On VM, although the VM is Restarted During the Operation.

If that Size isn't available on the Current Cluster, Azure requires the VM to be Deallocated before Resizing. That allows Azure to place the VM onto Infrastructure capable of providing the requested Size.

Conceptually:

Current Host/Cluster Supports Target SKU

Action:  VM Resize Restart New SKU (In this case no deallocation is required)

                            versus:

Current Host/Cluster cannot Provide Target SKU

Action: VM Deallocate Azure Placement Compatible Capacity New SKU Start

Deallocation always means the Azure VM is stopped. A running VM cannot be in the Deallocated State.

VM State

VM Running?

Compute Resources Allocated?

Compute Billing

Running

Yes

Yes

Yes

Stopped

No

Yes

Yes

Stopped (Deallocated)

No

No

No Compute Billing

 

Azure Virtual Machines use a predefined VM Size (SKU) Architecture in which Compute, Memory, Storage, Networking, and Hardware-Dependent Capabilities are delivered through Standardized Virtual Hardware Profiles. VM Families and Size Series Group these Profiles according to Workload Characteristics, Hardware Architecture, Capabilities, and Generation. Administrators therefore do not independently add Physical-Style Resources such as RAM Modules or CPU Sockets to an Azure VM. When additional or different resources are required, the VM is Resized to a compatible SKU whose Predefined Resource and Capability Profile Satisfies the Workload Requirements. If the target SKU cannot be provided by the VM's current Hardware Cluster, Azure requires Deallocation (Deallocation means the VM is Turned Off) so the VM can be placed on compatible Infrastructure.

Azure VM SKU Families

Azure VM Family

Major SKU Series / Examples

Primary Design Purpose

Typical Workloads

General Purpose – A Family

Av2

Entry-level, economical general-purpose compute

Dev/test, small web servers, small databases, proof-of-concept

General Purpose – B Family

B-series, Basv2, Bpsv2 and related B variants

Burstable CPU using a CPU-credit model

Dev/test, low-utilization servers, small databases, intermittent workloads

General Purpose – D Family

Dsv5, Ddsv5, Dasv5, Dadsv5, Dpsv5, Dpdsv5, Dsv6, Ddsv6, Dasv6, Dalsv6, Dsv7, Dasv7 and related variants

Balanced CPU-to-memory ratio

Application servers, enterprise applications, web servers, databases

Confidential / General Purpose – DC Family

DC-series and current DC variants

Hardware-backed confidential computing

Sensitive applications, protected data processing, regulated workloads

Compute Optimized – F Family

Fsv2, Fasv6, Fasv7 and related variants

High CPU relative to memory

Application servers, batch processing, analytics, compute-intensive workloads

Compute Optimized – FX Family

FX-series

High-frequency CPU and large cache per core

EDA, financial modeling, scientific computation, CPU-intensive workloads

Memory Optimized – E Family

Esv5, Edsv5, Easv5, Eadsv5, Epsv5, Epdsv5, Esv6, Easv6, Esv7, Easv7 and related variants

High memory-to-vCPU ratio

SQL Server, databases, caches, enterprise applications, in-memory processing

Memory Optimized – Eb Family

Ebsv5, Ebdsv5 and related variants

Memory optimized with high remote-storage performance

Large databases and storage-intensive database workloads

Memory Optimized – M Family

M-series, Mv2, Msv2, Mdsv2 and related variants

Very large memory capacity

SAP HANA, very large databases, in-memory analytics

Storage Optimized – L Family

Lsv2, Lsv3, Lasv3 and related variants

High local-storage throughput and IOPS

NoSQL, data warehousing, Elasticsearch, Cassandra, large databases

GPU Accelerated – NC Family

NC-series, NCasT4_v3, NCads_A100_v4, NCads_H100_v5 and related variants

GPU compute

AI/ML, CUDA, inference, rendering, computational workloads

GPU Accelerated – ND Family

ND-series, NDv2, ND A100 variants and related series

Large-scale GPU/AI workloads

Deep-learning training, AI, HPC

GPU Accelerated – NV Family

NV-series and current NV variants

GPU visualization and graphics

VDI, visualization, graphics, rendering, engineering applications

High Performance Compute – HB Family

HBv2, HBv3, HBv4, HBv5

Memory-bandwidth-intensive HPC

CFD, weather modeling, scientific simulation

High Performance Compute – HC Family

HC-series

Compute-intensive HPC

Computational chemistry, finite-element analysis, simulation

High Performance Compute – HX Family

HX-series

Large-memory HPC

Silicon design, EDA, computational engineering

FPGA Accelerated – NP Family

NP-series

FPGA hardware acceleration

ML inference, video processing, specialized hardware acceleration

 

Microsoft's documentation also distinguishes Previous-Generation Series from Current Generations; for example, older D/Ds/Dv2/Dv3, F/Fs/Fsv2, Ev3/Ev4, G/Gs, and Lsv1 Families are now listed separately as Previous-Generation Sizes.

How to Read an Azure VM SKU

SKU Element

Meaning

Example

Family

Fundamental VM Workload/Resource Family

D

Subfamily

Specialized Variation within the family

C, B, V, etc.

Number

Number of vCPUs represented by the Size

4

a

AMD Processor

D4as_v5

p

Arm-Based Processor

D4ps_v5

d

Includes Local Temporary Disk

D4ds_v5

s

Supports Premium SSD Storage

D4s_v5

m

Memory-Intensive Variation

M-Family Variants

r

RDMA-Capable Secondary Network

HPC Variants

i

Isolated Size

Selected VM SKUs

v5 / v6 / v7

Generation/Version of the VM Series

D4s_v5, D4s_v6, D4s_v7

 

Microsoft documents the naming structure as Family + Subfamily + vCPU Count + Optional Capabilities + Version.

An Azure VM SKU is not simply a Pricing Label. It identifies a predefined Virtual Hardware Configuration and Capability Envelope. Changing RAM, vCPU capacity, GPU capabilities, local storage characteristics, or certain networking capabilities therefore requires selecting a VM SKU that provides the required configuration.

One important distinction is: “available Azure VM SKUs” is Region-Specific. There isn't one Static List of individual Standard_* SKUs that is deployable everywhere. Series Availability varies by Region, Zone, Subscription Restrictions, and Capacity. Microsoft Specifically recommends Confirming the Target Size in the Intended Region.

Microsoft's newer Azure VM Series Generations, such as v6 and v7, are comparable to an Organization Refreshing Physical Servers in its own Datacenter. In an On-Premises Environment, the Organization Purchases, Installs, Configures, Maintains, and Eventually Replaces the Physical Server Hardware. In Azure, Microsoft performs that infrastructure Lifecycle Management. Customers consume the Newer Hardware and Platform Capabilities through newer Azure VM SKUs and pay Microsoft for the Compute Resources they use.

Summary: Azure VM Sizing vs. On-Premises Hypervisor Sizing

One of the most important differences to understand when moving from an On-Premises Hypervisor to Azure Virtual Machines is how Virtual Hardware Resources are managed.

With an On-Premises Hypervisor, Administrators control the Virtual Hardware Configuration. If a VM has 8 GiB of RAM and later requires 16 GiB, the Administrator can modify the VM configuration and allocate additional Memory. The same principle applies to Virtual CPUs, subject to the capabilities and Available Resources of the Hypervisor and Physical Host.

Azure uses a Different Design.

Azure does not allow Administrators to independently add RAM or vCPUs to an existing VM Size. Instead, Microsoft provides predefined VM Sizes (SKUs). Each SKU defines a Specific Combination of Resources and Capabilities, including vCPUs, Memory, Disk Limits, Storage Performance, Network Performance, NIC Limits, and supported Hardware-Dependent Features.

Therefore, the Azure approach is not:

8 GiB RAM Add another 8 GiB RAM 16 GiB RAM

Instead, it is:

Current VM SKU Identify a SKU with the required resources Resize the VM to the new SKU

Administrators manage the selection of the Virtual Hardware Profile, not the Individual Underlying Hardware Components.

The Fundamental Differences are:

On-Premises Virtualization allows Administrators to modify individual Virtual Hardware Resources such as RAM and CPU. Azure abstracts those Resources into predefined VM SKUs. When an Azure VM requires additional CPU or Memory, the Administrator selects and Resizes the VM to another SKU that provides the required resource configuration rather than adding CPU or RAM individually.

If the VM is part of a Virtual Machine Scale Set (VMSS), additional capacity does not necessarily require resizing the existing VM to a larger SKU. The workload can instead Scale Horizontally by adding additional VM instances using the configured VM size.

This distinction should be clearly understood before designing and sizing Azure VMs. Administrators coming from VMware, Hyper-V, or other On-Premises Hypervisors should not expect an “Add Hardware” model where CPU and Memory can be independently increased. In Azure, Compute Resources are defined by the selected VM SKU; when additional CPU or Memory is required, the VM must be Resized to a supported SKU that provides the required Resource Configuration.

 

Found this Article Useful? 😊
If this Article saved you an hour of Troubleshooting, a few minutes of searching, or one Microsoft documentation Rabbit Hole, consider turning some of that saved time into a Coffee. Your support helps keep new Technical Guides coming.

0 comments

Leave a comment

Please note, comments need to be approved before they are published.