Smart Sizing
Continuous Pod CPU/memory requests and limits optimization based on actual usage patterns, with per-container buffer / min / max controls and an Apply History panel built on the Kubernetes in-place pod resize primitive.
Overview
Wave Smart Sizing automatically adjusts pod CPU and memory requests / limits based on actual consumption patterns, then applies them on the Kubernetes in-place pod resize primitive with no pod restart. VPA gained a similar in-place mode (InPlaceOrRecreate, beta) in K8s 1.33+; Wave's value is in the pipeline around that primitive — broader hysteresis, per-container buffer / min / max, explicit Apply Modes, and Apply History in the Web Console.
By analyzing real usage data over time, Smart Sizing eliminates the guesswork of setting resource requests/limits. It prevents both over-provisioning (wasting money) and under-provisioning (causing OOMKills and throttling), achieving optimal resource efficiency.
Why Better Than Kubernetes VPA
| Kubernetes VPA | Wave Smart Sizing | |
|---|---|---|
| Adjustment Method | InPlaceOrRecreate (beta in K8s 1.33+) uses the in-place primitive but silently falls back to evict-and-restart when the node lacks capacity | Same in-place primitive, surfaced as an explicit user choice: In-Place stays in-place (skip on node-pressure, retry next cycle), Manifest Patch is rollout-managed — no silent restarts |
| Configuration Complexity | Manual VPA objects per deployment with complex update policies | One-click enablement for all workloads or per-deployment |
| Configuration Drift | VPA recommendations can drift from actual deployment manifests | Continuous synchronization with actual workload behavior |
Key Outcomes & Benefits
Eliminate over-provisioning waste across all workloads
Achieve optimal CPU and memory utilization
Eliminate manual requests/limits tuning efforts
How It Works
1. Usage Monitoring
WA Metrics Agent collects actual CPU and memory consumption for all pods continuously.
2. Optimal Calculation
Analyzes P95/P99 usage patterns to calculate optimal requests/limits with safety margins.
3. Continuous Adjustment
Automatically updates pod resource specifications without restarts or downtime.
4. Adaptation
Continuously adapts to changing workload demands—no configuration drift.
Key Outcomes & Benefits
Discover over-provisioned workloads wasting CPU and memory
Quantify cost reduction opportunities from right-sizing
Eliminate manual resource request/limit tuning efforts
How It Works
1. Usage Tracking
Monitors actual CPU and memory consumption for all pods over extended time periods.
2. Gap Analysis
Compares actual usage (P95/P99) against configured requests and limits to identify gaps.
3. Recommendation Generation
Calculates optimal CPU and memory values with appropriate safety margins for each workload.
4. Impact Quantification
Shows potential cost savings, resource reclamation, and performance improvements for prioritization.
Realtime Resizing: automatic, in-place, no restart
Realtime Resizing closes the loop automatically. Each workload (Deployment, StatefulSet, DaemonSet, Argo Rollout, or OpenShift DeploymentConfig) picks one of three Apply Modes — and automatic application stays opt-in at the container level, so nothing changes in your cluster until you turn it on. Prefer to stay hands-on? Apply any recommendation on demand with Resize Now.
Off
Wave keeps generating recommendations but never touches the workload. Use this to evaluate Smart Sizing before turning anything on.
In-Place Pod Resize
Calls the Kubernetes 1.27+ /resize subresource on running pods. No pod restart, no rollout, no downtime. Requires the InPlacePodVerticalScaling feature gate on K8s 1.27–1.32; enabled by default from 1.33, GA in 1.35.
Manifest Patch
Patches the workload spec. New pods pick up the new resources on the next rollout. Safe everywhere — works without the in-place feature gate.
Per-container buffer / min / max controls live in Container Settings, so you can keep your safety margins.
Supported on Deployment, StatefulSet, DaemonSet, Argo Rollout, and OpenShift DeploymentConfig.
Before you turn auto-apply on
- • Hysteresis to suppress noise: a recommendation is applied only when the priority ratio ≥ 10% OR CPU delta ≥ 50 mCPU OR memory delta ≥ 64 MiB (VPA-style thresholds, OR-combined).
- • In-Place is fire-and-forget per pod. If the kubelet rejects the resize because the node lacks resources, that pod is skipped and Wave retries on the next 10-minute cycle. Use Manifest mode if you need a guaranteed reschedule.
- • Manifest mode conflicts with Argo CD auto-sync — Argo will revert the patch. Turn auto-sync off for workloads where Wave should own resource values, the same way you already do for Autopilot.
- • On a Deployment, Smart Sizing auto-apply is automatically released when the workload transitions to Autopilot — Autopilot owns resource decisions for what it manages.
Optimize Every Pod's Resource Configuration
Continuous, non-disruptive resource optimization with the pipeline around the in-place primitive: per-container buffer / min / max, broad hysteresis, and an Apply History panel.
Book a Demo