PricingPricingDocsDocsBlogBlogBook a demoBook a demoCompanyCompany (opens in a new tab)
Product
DocsAPI ReferencePricingConsole DemoBlogCompany
Start Freev3.4.7
Wave Autoscale

Autopilot

Scales each Deployment from a model of its own performance, and decides in about 10 seconds where HPA takes about 30.

The challenge

Traffic jumps, and HPA adds the first Pods about 30 seconds later

kubernetes.io, Horizontal Pod Autoscaling; kubernetes-sigs/metrics-server; Cast AI, 2026 State of Kubernetes Optimization Report

By default, metrics-server collects metrics every 15 seconds, and HPA checks them every 15 seconds. A spike can wait up to 30 seconds before HPA adds the first Pods.

After that, HPA can add at most 4 Pods or 100% of the current Pods every 15 seconds. Going from 10 to 80 Pods takes three increases, the last one 30 seconds after the first.

To avoid that wait, teams keep extra replicas running. Average CPU use across the clusters Cast AI measured was 8% in 2025.

Pods arrive about 30s after the spike, then about 10s after itWithout WaveWith WavePods 30s latePods in 10s
Without Wave
HPA adds the first Pods about 30 seconds after the spikePods neededreplicastoo few PodsHPA reacts about 30s later0s15s30s45s60s
Load jumps at 5s. HPA adds the first Pods about 30 seconds later, then can at most double the Pods every 15 seconds.
With Wave
Autopilot adds the first Pods about 10 seconds after the spikePods neededreplicasAutopilot reacts in about 10s0s15s30s45s60s
Autopilot adds the first Pods about 10 seconds after the jump. The Pods are short for less time.

HPA about 30s: up to 15s for metrics-server to collect metrics plus up to 15s for the HPA sync period (kubernetes.io, kubernetes-sigs/metrics-server). HPA scale-up default (100% or 4 Pods per 15s): kubernetes.io. Autopilot about 10s: Autopilot docs. Load and Pod counts are illustrative; for Autopilot, the later steps are illustrative too.

How Wave does it

From a traffic change to new Pods
Kubernetes HPA (default)First decision: about 30s
  1. cAdvisor in the kubelet
    reads Pod CPU and memory
  2. ↓every 15s→
    metrics-server
    keeps the latest value per Pod
  3. ↓every 15s→
    HPA controller
    replicas = ceil(current × metric ÷ target)
  4. ↓scale→
    Deployment
    starts the new Pods
Wave AutopilotDecision: about 10s
  1. Wave Agent
    with cAdvisor, on every node
  2. ↓gRPC→
    Wave Core
    keeps metrics history, applies rules and cooldowns
  3. ↓history→
    Wave Intelligence
    a model of this workload, from 14 days of its behavior
  4. ↓replica count→
    Kubernetes API
    Wave Core sets the replicas
HPA: sync period and algorithm from kubernetes.io; 15s metrics collection from kubernetes-sigs/metrics-server. Wave: architecture and about 10s from the Autopilot docs. The 30s is the sum of the two 15s cycles, worst case.
1

Collect workload metrics

The Wave Agent on every node sends Pod metrics to Wave Core, so Autopilot works from current numbers.

2

Model each workload

By default, Autopilot trains an ML model on 14 days of the workload's own behavior and learns how many Pods a given load needs (Autopilot docs).

3

Decide in about 10 seconds

Autopilot combines the model with rules and cooldowns and sets the replica count within about 10 seconds. With no model yet, it scales the way HPA does.

Results

about 10s
Wave Autopilot
about 30s
Kubernetes HPA

from a load change to a scaling decision, about 2x faster than HPA

Autopilot docs; HPA: kubernetes.io defaults

Interactive Speed Comparison

Click the button to simulate a traffic spike and see when each system decides to scale. Timings are illustrative.

Traffic Load
100%
50%
0%
0s1s2s3s5s

Kubernetes HPA

HPA: Monitoring

P1
P2

Wave Autopilot

Autopilot: Ready

P1
P2

About 20 seconds sooner: Autopilot decides in under 10 seconds and HPA in about 30, so Pods are short for less time during a spike.

Related in Wave Autoscale

Autopilot Scheduler →Min/Max Recommendation →Read the docs →
Book a demoStart free
Product
WaveWave GPULLM Serving Professional ServiceWave AI Agent2026 Q4
Resources
DocsAPI ReferenceBlogConsole DemoPricing
Company
STCLabBook a demoContact
STCLab© 2026 Wave All rights reserved.
Terms of ServicePrivacy PolicyCookies