Work out real memory utilisation after OS overhead, the GB per vCPU ratio, and the memory a target utilisation needs.
Utilisation should be measured against usable memory, not the marketing figure, because the kernel, page cache and agents claim a fixed slice before your process starts. The GB-per-vCPU ratio then tells you which family you are on — roughly 2 for compute optimised, 4 for general purpose and 8 for memory optimised — so a workload sitting at 4 GB per vCPU with spare CPU is a candidate to move to an R-family shape with fewer, larger-memory cores. Memory is the one EC2 dimension CloudWatch cannot see by default, so it is where over-provisioning hides — and unlike CPU, running out of it kills the process rather than slowing it down.
EC2 Memory Utilization
usable RAM = instance memory − OS overhead; utilisation = used ÷ usable; memory needed = used ÷ target + overhead.
usable RAM = instance memory − OS overhead; utilisation = used ÷ usable; memory needed = used ÷ target + overhead. Utilisation should be measured against usable memory, not the marketing figure, because the kernel, page cache and agents claim a fixed slice before your process starts. The GB-per-vCPU ratio then tells you which family you are on — roughly 2 for compute optimised, 4 for general purpose and 8 for memory optimised — so a workload sitting at 4 GB per vCPU with spare CPU is a candidate to move to an R-family shape with fewer, larger-memory cores.
Memory is the one EC2 dimension CloudWatch cannot see by default, so it is where over-provisioning hides — and unlike CPU, running out of it kills the process rather than slowing it down.
This calculator takes 5 inputs: Instance memory, vCPUs on the instance, Memory used by the workload, Operating system and agent overhead, Target memory utilisation. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.