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.
8 Sections
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.
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.
The recommended SKU shows Availability Restrictions
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.