All toolsInteractive example · illustrative values

Memory Extension

Keep the working set in RAM. Place eligible cold pages in bounded cached-memory and disk tiers, with explicit policy and an observable recreate workflow.

Workload & policy
Add a controlled safety buffer without lowering Request by default.
12 GiB

Hot pages must fit in the fast tier; memory extension cannot rescue an oversized hot working set.

8 GiB
Example boundaries
16 GiB physical RAM · 14 GiB workload limit · 2:1 illustrative cached-memory compression. This is not additional Kubernetes allocatable memory.
Logical memory

20 GiB

Memory Request

10 GiB

Physical RAM estimate

15.25 GiB

Uncovered demand

0 GiB

protected
Where the pages live
Hot pages in RAM12.00 GiB
Cold pages retained in RAM2.00 GiB
Cached memory2.50 GiB
Disk tier3.50 GiB
Uncovered demand0.00 GiB
Observation → recommendation → recreate
Local walkthrough only. No resource changes are sent to a cluster.

Workload Autoscaler

The workload is evaluated

Workload Autoscaler identifies eligible Pods, chooses a policy, and records the execution constraints.

Execution boundary
Application requires a new Pod and on-CREATE admission. Placement and runtime settings are not presented as an in-place change.

Recorded EKS validation

Original validation evidence · July 2026 · feasibility, not a universal latency promise.

Logical cold-page workload

20 Gi

Approximately 14 Gi cgroup limit

Observed extension usage

6.75 Gi

OOMs / restarts

0 / 0

RAM-only failure point

≈14 Gi

RAM-only · 8 Gi workload

21 ms

Recorded cold-read p95

Cached memory + disk · 20 Gi

215 ms

Recorded cold-read p95

Disk-only · 11 Gi workload

743 ms

Recorded cold-read p95

Evidence boundary
These cases use different logical workload sizes and test branches. They demonstrate a resilience/performance trade-off, rather than a matched-load comparison or fixed speed multiplier.

How it works

A memory limit is a cliff: cross it and the container can be OOMKilled. Memory Extension adds a bounded hierarchy beneath that cliff, but only cold pages are candidates for the slower path. The scheduler still sees the Kubernetes Request—not an imaginary larger node.

Use the controls to make the central point visible: extension capacity does not repair a hot working set that is too large. The safe opportunity exists only when enough memory is cold and the selected policy has a measured extension budget.

Add a controlled safety buffer without lowering Request by default.

Hot memory remains in RAM. Eligible cold pages move through cached memory before disk, while guardrails watch the retrieval cost.

Memory Extension is not allocatable memory. Placement feasibility remains explicit.

Keep the prep counter clear without pretending the cold room is just as fast.

Active memory is the chef's counter. Cached memory is the nearby cabinet: compressed, but still close. Disk is the cold room: useful capacity with a real retrieval cost. CloudPilot AI decides what may move, canaries a small cohort, and reverses course when serving time regresses.

Memory Extension turns host-level behavior into a product workflow. Node Agent owns collection, VictoriaMetrics owns history, the autoscalers own decisions and capacity, and the webhook acts only when a new Pod is created.

This is the ownership slide. Emphasize that Workload Autoscaler does not scrape node files directly, and that a recommendation is not silently applied to a running Pod.

The workload is evaluated

Workload Autoscaler identifies eligible Pods, chooses a policy, and records the execution constraints.

Scheduling, kubelet behavior, and placement constraints need a new Pod lifecycle. CloudPilot AI never promises an in-place mutation that the runtime cannot honor.

Early EKS cold-page validation crossed an OOM boundary that the RAM-only control could not. The evidence supports product feasibility—not a universal latency promise.

Lead with survival, then immediately show the cold-read cost. The three latency cases used different logical workload sizes, so they are directional evidence rather than a strict apples-to-apples benchmark.

Different workload sizes and test branches. Use these results to explain the resilience/performance trade-off, not to promise a fixed multiplier.

Not every workload belongs on Memory Extension.

Cold, bounded, and restart-tolerant

Burstable services, batch, async workers, startup spikes, cold pages, and workloads with cgroup OOM history.

Latency-sensitive or stateful paths

Online Java, single replicas, StatefulSets, and strict p99/p999 services need complete SLO and runtime evidence.

Unbounded or memory-critical systems

BestEffort Pods without limits, DaemonSets, control-plane software, databases, and core caches stay out.

Right-size Heap and protect non-heap before considering Memory Extension for cold pages, native memory, or short peaks.

Memory Extension separates a hard reliability problem from an optional cost decision. Customers can begin with visibility, protect the OOM cliff, and advance only after canary evidence proves the workload fits.

Turn a hard OOM cliff into a controlled buffer

Absorb eligible cold pages and transient pressure without pretending every byte belongs on the fast path.

Stop reserving every rare peak in expensive RAM

Use workload history to protect the hot set while giving cold memory a governed place to go.

Adopt gradually with canary and rollback built in

Recommend, prepare capacity, recreate a small cohort, verify guardrails, then expand or reverse.

Show suitability and risk without changing runtime behavior.

Add a controlled safety buffer without lowering Request by default.

Trade a bounded amount of cold-access latency for better utilization.

Pursue denser placement only after explicit opt-in and canary evidence.

Memory Extension is not free memory.

Cold retrieval can be slower, especially after disk writeback. Latency and throughput remain guardrails.

The scheduler still uses Request.

Extension capacity is not Kubernetes allocatable memory. Node and workload feasibility must remain explicit.

Node Agent owns collection.

VictoriaMetrics stores history; Workload Autoscaler analyzes it instead of scraping node files directly.

Cost Saver is opt-in.

Denser placement requires complete evidence, a canary, an SLO, and a tested rollback path.

Apply means recreate.

Placement and runtime settings take effect through a new Pod and on-create admission, not an in-place promise.

Java stays JVM-aware.

Heap, GC pressure, and protected non-heap are optimized before cached memory or disk is considered as a bounded secondary tier.

Memory Extension is not free memory.

Cold retrieval can be slower, especially after disk writeback. Latency and throughput remain guardrails.

The scheduler still uses Request.

Extension capacity is not Kubernetes allocatable memory. Node and workload feasibility must remain explicit.

Node Agent owns collection.

VictoriaMetrics stores history; Workload Autoscaler analyzes it instead of scraping node files directly.

Cost Saver is opt-in.

Denser placement requires complete evidence, a canary, an SLO, and a tested rollback path.

Apply means recreate.

Placement and runtime settings take effect through a new Pod and on-create admission, not an in-place promise.

Java stays JVM-aware.

Heap, GC pressure, and protected non-heap are optimized before cached memory or disk is considered as a bounded secondary tier.

CloudPilot AI / Interactive tools