

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 Family — Workload/Hardware Class
↓
VM Size Series — Hardware Generation and Capability Set
↓
VM Size / SKU — Predefined 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