Docs
Wave Sizing
Overview

Smart Sizing Overview

Smart Sizing analyzes the CPU and memory usage of every workload in your cluster and recommends request and limit values for each container. Analysis runs every 10 minutes, and recommendations address both directions of mis-sizing:

  • Over-provisioning: requests far above real usage waste money and block scheduling capacity.
  • Under-provisioning: requests below real usage risk CPU throttling and OOMKills.

Two recommendation models

Smart Sizing picks the model automatically based on whether the workload is horizontally scaled.

Smart Sizing (usage-based model)Smart Sizing with HPA / Autopilot (workload performance model)
Applies toWorkloads without HPA or AutopilotDeployments with an HPA, or with Wave Autopilot enabled
How it worksObserves 7+ days of CPU/memory usage plus other workload metrics used as SLIs (network in/out, request behavior) and recommends reliable, cost-effective values. It checks workload reliability, not just the lowest observed usageModels how the workload group behaves at different replica counts (5, 10, 15 replicas behave differently), and recommends one CPU/memory value that stays valid while the workload scales horizontally
Data neededFirst recommendations within 24-48 hours; stable after 7 daysAt least 5 data points at distinct replica counts; workloads without enough traffic variation may not produce recommendations yet
How to applyResize Now (manual) or Realtime Resizing (automatic)Resize Now (manual) only, see why below

The workload detail page shows which model is active: the tab is labeled Smart Sizing, Smart Sizing with HPA, or Smart Sizing with Autopilot.

Two ways to apply recommendations

Apply pathWhat it doesWhere
Manual: Resize NowYou review the recommendation and apply it on demand, per container, choosing in-place resize or a manifest editResize Now
Realtime ResizingWave applies recommendations automatically every 10-minute cycle, opt-in per workload and per container, with In-place and Manifest modesRealtime Resizing

Workloads using HPA or Autopilot cannot use Realtime Resizing while they are actively scaling. When a workload autoscales, pods are created and terminated dynamically, so applying new values to running pods would leave newly scaled-up pods with different sizes, and a manifest patch would restart every pod mid-scale. Review the recommendation and apply it manually instead. The restriction applies only once Autopilot or HPA is actively scaling the workload: a workload with Autopilot in Monitoring Mode is not being scaled, so Realtime Resizing stays available there. The reasoning is covered in detail in Realtime Resizing.

Tuning recommendations

  • Aggressive Recommendations: switch a workload from the 7+ day window to the last 1 hour (request = average usage, limit = peak usage) for maximum cost reduction.
  • Container Settings: per-container min/max bounds and safety buffer (default 10%) that shape every recommendation, plus auto-apply opt-in.

Built-in safety guardrails

Smart Sizing never applies a value blindly:

  • Recommendations always satisfy limit ≥ request. CPU never goes below 0.1 core (0.01 core when Aggressive Recommendations is on), and memory never goes below the 12 MiB container-runtime minimum.
  • Zero or missing recommendation values are never written to the cluster.
  • The first time Wave resizes a container, the original request/limit values are captured, and a Restore Original button reverts them at any time.
  • Every automatic apply is recorded in the per-workload Apply History table.
  • Tiny changes are skipped: an apply only happens when the change is meaningful (≥ 10% ratio, ≥ 50 mCPU, or ≥ 64 MiB). Aggressive workloads use lighter gates (≥ 10 mCPU or ≥ 10 MiB, no ratio check) so they can track the 1-hour window closely.

Supported workload kinds

Deployment, StatefulSet, DaemonSet, Argo Rollout, and OpenShift DeploymentConfig (OpenShift / OKD).

Smart Sizing vs Kubernetes VPA

DimensionKubernetes VPASmart Sizing
Recommendation inputUsage histogram, percentile aggregationUsage-based model with reliability checks, or workload performance model for horizontally scaled workloads
HPA compatibilityNot compatible (conflicts on the same workload)Dedicated Smart Sizing with HPA model: recommendations that stay valid across replica counts
Apply behavior on insufficient node resourcesFalls back to evict-and-recreate automaticallyExplicit modes only: In-place skips the pod and retries next cycle; no silent restarts
Per-container controlsminAllowed / maxAllowedMin/max bounds and safety buffer via Container Settings
Supported kindsDeployment, StatefulSet, DaemonSetPlus Argo Rollout and OpenShift DeploymentConfig
Operator visibilityVPA events, kubectl describe vpaDashboard with savings/risk ranking, per-workload Apply History

Where to go next