Over-Provisioned Scale Set (Azure)
CostLens flags Azure VM Scale Sets averaging under 10% CPU across their instances, where capacity can be reduced or autoscaled down.
CostLens flags over-provisioned Azure VM Scale Sets — scale sets averaging under 10% CPU across their instances over 14 days. A scale set idling near zero is paying for instances it doesn't need; lowering the instance count or enabling autoscaling captures the difference with no impact at normal load.
How it works
Scale sets are enumerated
CostLens lists VM Scale Sets via the Azure Resource Manager API, reading each set's VM size and instance count.
CPU is measured
The scale set's Percentage CPU metric is averaged over 14 days. Sets with 2+ instances below a 10% average are flagged.
Savings are estimated
Priced conservatively as roughly half the scale set's compute cost (VM size × instance count) — the capacity a near-idle set can typically shed.
What to do
- Confirm the low CPU isn't masking memory- or IO-bound load, and that the set isn't sized for a rare traffic spike.
- Either lower the instance count, or configure autoscaling so the set scales down during low demand and up when needed.
Severity levels
| Severity | Estimated monthly savings |
|---|---|
| critical | >$500 |
| high | $100–$500 |
| medium | $20–$100 |
| low | <$20 |
Required permissions
- Detect:
Reader(scale-set metadata + Monitor metrics) — see Azure Accounts.
Limitations
- The savings figure is a conservative estimate — right-size against your real peak-load requirements before reducing capacity.
- Autoscaling is often the better long-term fix than a fixed lower count.