Skip to content
Workload Rightsizing

CPU and memory requests, sized from each container’s own usage.

Based on 7 days of per-container usage, with extra memory after OOM kills and room for CPU bursts. You get the YAML; you apply it.

  • Per container
  • OOM-aware
  • Paste into Git

Before · example container

CPU1.0
Memory2.0Gi

Recommended requests

CPU
0.32–68%
Memory
780Mi–62%

How a request is sized

Three inputs per container.

Baseline usage, trend, and burstiness. Each adds its own headroom to the request.

For container worker

Baseline

01

What does this workload normally need?

0.420 cores

Growth

02

Is it trending up, down, or steady?

+5% headroom

Burstiness

03

How spiky is its day-to-day?

+18% headroom

Recommended

0.520cores

Was

1.000

–48%

What you get

The YAML change and the usage behind it.

The YAML on one tab. Seven days of usage on the other.

  • Per-container YAML. Current and recommended, side by side.

  • Pick your aggregation. Avg through Max. 7, 14, or 30 days.

  • A profile per cluster. Production uses P99 for CPU and memory, non-production P50. You can override the percentiles.

  • Dismiss what doesn’t fit. It leaves your list.

app.kubeadapt.io / clusters / prod-eu-1 / container-rightsizing
Example
analytics-worker
Deployment · data-platform · 12 / 12 pods · saving $1,428 / mo
Currentlive in cluster
- name: worker
  resources:
    requests:
      cpu: 1000m
      memory: 2Gi
    limits:
      cpu: 2000m
      memory: 4Gi
Recommended
- name: worker
  resources:
    requests:
      cpu: 320m       # P99 × 1.05 × 1.18
      memory: 780Mi   # P99 × 1.04 × 1.22
    limits:
      cpu: 480m       # request × 1.5
      memory: 1.0Gi   # max observed × 1.30

line 4

1000m 320m

-680m

line 5

2Gi 780Mi

-1.2Gi

line 7

2000m 480m

-1.52

line 8

4Gi 1.0Gi

-3.0Gi

Trend

Steady

Volatility (CV)

0.18 · Low

OOM kills

0 in 7d

Restarts

0 in 7d

A rightsizing recommendation for a sample Deployment.

Four checks

Four checks before we suggest a smaller request.

  • OOM-aware

    Memory limits sit above the highest peak we saw.

    An out-of-memory kill restarts the pod, so the recommended memory limit comes from the highest usage observed, not an average.

    Memory · 7 days

    covers the peak

    Recommended limitAverageMemory usage

    Two real spikes. An average misses the second. Our recommendation doesn’t.

  • After OOM kills

    After OOM kills, we add memory headroom.

    A container killed at its limit never shows how much memory it needed, so observed usage reads low. After kills, the recommendation raises memory until the kills stop.

    7d · 3 kills detected

    headroom restored

    Recommended limitOld limitDaily peakKilled

    Kills cap what we can observe. Our recommendation pushes the limit higher until the cycle stops.

  • Bursty CPU

    For bursty CPU, we recommend no CPU limit.

    When peaks run far above normal load, we recommend removing the CPU limit so bursts are not throttled.

    Bursty CPU · 7 days

    recommended ceiling: none

    CPU usageRecommended requestNo throttle

    Bursts are not throttled.

  • Replica-aware

    Per-pod numbers, scaled to your workload.

    The dollar figure on a recommendation is the per-pod saving multiplied by your replica count, including HPA-scaled workloads.

    Replica-aware savings

    $35.70 / pod × 40 pods

    Total

    $1428/ mo

    Per-pod savings scaled by your replica count, including HPA workloads. The dollar number is the workload total, not a single pod.

The workflow

We don’t apply. You do.

The YAML goes through the same review as any other change.

  1. Step 01

    Copy

    One click. The snippet is on your clipboard.

    Current · Recommended

  2. Step 02

    Open a PR

    Paste into whatever you already use.

    Helm · Kustomize · Terraform · ArgoCD · Flux

  3. Step 03

    Merge

    Your CI, your review, your rollout. After the change lands, Kubeadapt waits out a cooldown and sizes the container again from new usage.

    Cooldown set by profile · re-analysis

No apply path. Kubeadapt does not change your workloads.

Install in 5 minutes

Stop paying for unused capacity.

Free up to 100 vCPU. After that, $1.99 per vCPU per month, dropping to $0.60 at volume.

Agent runs in your clusterNo credit card