Skip to main content

Virtual Machines

How virtual machine and scale set recommendations are sized, what the VM toggles do, and how to read the VM card. Select a VM or scale set on the Recommendations Page to open its card.

Azure VMs and VM scale sets with collected performance metrics are analyzed, producing VM SKU Downsize and VMSS SKU Downsize recommendations. Analysis uses daily Azure Monitor metrics kept for up to 365 days, plus 30 days of hourly CPU. Each VM needs 7 days of data before its first recommendation by default; set the Virtual Machines Minimum Data Window to 0 to include every VM.

Statistics Used

CPU
The higher of the P95 of daily averages (up to 365 days) and the P95 of hourly averages (last 30 days). Hourly is used only when at least 24 hours of hourly data exist.
Memory
From the Azure Monitor Available Memory Bytes platform metric; no agent is needed. The higher of an average-based statistic (P99 with 100+ days of data, otherwise P95) and the P95 of daily peak usage (needs 7+ days).
Disk IOPS
VM-level uncached and cached IOPS-consumed P95s when available, otherwise the OS and data disk IOPS-consumed percentage.

When a VM doesn't report Available Memory Bytes, memory shows "Data not available", the recommended SKU keeps at least the current memory, and only CPU-based downsizing is possible.

Workload Profile

Each VM is classified from its CPU, memory and disk pressure. The profile decides which families are considered when cross-family SKUs are allowed.

Compute Intensive
F-series preferred
Memory Intensive
E-series preferred
Balanced
D-series preferred
Burstable
B-series preferred
Oversized
Consistently low on everything

Candidate Checks

A candidate SKU that fails any of these checks is never recommended:

  • Enough vCPU and memory for the workload at the aggressiveness ceiling.
  • Enough uncached and cached IOPS capacity.
  • Supports Premium storage and accelerated networking when the VM uses them, and at least as many data disks as are attached.
  • Has a price at the VM's pricing tier. A Spot-only price doesn't qualify for a regular VM.
  • B-series only when Allow B-series (Burstable) is on, and only when the SKU's baseline CPU can sustain the VM's average CPU load. B-series SKUs with no known baseline are skipped.

VM Toggles

These five toggles live in the Virtual Machines section of Toggle Options. All are off by default, which keeps recommendations in the same family and current generation.

Allow Feature Changes
Allows CPU architecture and storage feature changes, such as AMD to ARM. When off, SKU sub-type suffixes like "as", "pls" and "ds" are preserved.
Allow Cross-Family SKUs
Allows moving to another VM family, for example D-series to E-series for a memory-heavy workload.
Allow Older Generations
Allows older SKU generations, such as v5 to v4, for more savings. Independent of cross-family.
Allow B-series (Burstable)
Allows burstable B-series SKUs.
Exclude Restricted SKUs
Skips SKUs with zone or location restrictions for the VM's subscription and shows the cheapest unrestricted option. When off, a restricted SKU can be recommended and the card shows Availability Restrictions.

B-series also enables older generations

Turning on Allow B-series (Burstable) also turns on Allow Older Generations, because many B-series SKUs are older generations.

B-series VMs can throttle

B-series VMs run on CPU credits and can throttle under sustained load. Recommendations check the SKU's baseline CPU, but validate performance after resizing.

Reading the VM Card

The VM SKU Downsize Recommendation card is used for both VMs and scale sets. Alongside the badges, rationale and estimated savings described in How Sizing Works, it shows:

Slot badge
Which toggle produced the pick: Cross-Family, Older Generation, Burstable, Feature Change, a combination such as Cross-Family + Older Gen, or Multi-Toggle. No badge means the default alternative.
Current and Recommended
SKU, vCPU, memory (GB) and monthly cost for each.
Pricing based on
The OS (Windows or Linux) and priority (Spot or Pay-as-you-go) detected from the VM. Candidates are priced and ranked at this pricing tier.
All Pricing Options
Per-instance current, recommended and savings prices for Linux and Windows, Pay-as-you-go and Spot.
Availability Restrictions
Shown only when the recommended SKU is restricted for this subscription, for example in one zone.
Utilization Statistics
P95, Average and Maximum for CPU and memory over the analysis window. P95 (Hourly) appears only when hourly CPU data exists.
Workload Analysis
The workload profile, family, analysis days and CPU, memory and disk pressure. An info icon next to Family appears when the workload's suggested family differs from the current one; it names the toggle to enable.
A default-alternative pick (no slot badge): an Oversized workload kept in the same family and generation.

Resizing restarts the VM

Plan a maintenance window before applying a SKU change.

Scale Sets

Scale set cost and savings cover the whole scale set: the per-instance price times the current instance count. Realized savings are recorded on a SKU change and compared at today's instance count, so instance-count changes alone don't count as savings.

Autoscaled scale sets

When a scale set has an enabled autoscale setting, every recommendation carries a consideration: a smaller SKU can make autoscale add instances, which reduces the savings.

Confidence

VM confidence uses five factors. Levels and thresholds are described in How Sizing Works.

Data Sufficiency
30%
Workload Stability
25%. Highly bursty intraday workloads, with hourly peaks far above daily averages, score lower and get a consideration.
Resource Headroom
20%
Workload Pattern
10%
Memory Data Availability
15%. Without memory data, confidence is capped at High.

Troubleshooting

My VM has run for a week and has no recommendation

Answer

Check the Virtual Machines Minimum Data Window in Settings > Scanner, and the Minimum Savings threshold on the page. Also check whether a cheaper SKU passes the candidate checks for Premium storage, accelerated networking and data disk count.

Memory says Data not available

Answer

The VM isn't reporting the Available Memory Bytes metric. The recommendation keeps at least the current memory, and confidence is capped at High.

Answer

Turn on Exclude Restricted SKUs to see the cheapest unrestricted option.

Workload Analysis suggests another family but the recommendation stays in the same family

Answer

Turn on Allow Cross-Family SKUs, or Allow B-series (Burstable) when the suggestion is B-series. The info icon next to Family says which.

My deallocated VM's recommendation disappeared

Answer

A VM with no metric data newer than 14 days gets no recommendation, and its existing one is removed.

Was this page helpful?

Last updated October 27, 2026