Submit feedback on
Suboptimal Memory-to-CPU Ratio in EKS Cluster Node
We've received your feedback.
Thanks for reaching out!
Oops! Something went wrong while submitting the form.
Close
Suboptimal Memory-to-CPU Ratio in EKS Cluster Node
Service Category
Compute
Cloud Provider
AWS
Service Name
AWS EKS
Inefficiency Type
Inefficient Configuration
Explanation

When the EC2 instance types used for EKS node groups have a memory-to-CPU ratio that doesn’t match the workload profile, the result is poor bin-packing efficiency. For example, if memory-intensive containers are scheduled on compute-optimized nodes, memory may run out first while CPU remains unused. This forces new nodes to be provisioned earlier than necessary. Over time, this mismatch can lead to higher compute costs even if the cluster appears fully utilized.

Relevant Billing Model

EKS clusters incur compute charges based on the EC2 instance types used in each node group. Each instance type has a fixed vCPU-to-memory ratio and is billed per second or hour. If this ratio doesn’t align with the actual requirements of the container workloads, either CPU or memory may be underutilized—resulting in inefficient node usage and unnecessary cost. The EKS service itself also incurs a fixed hourly fee per cluster.

Detection
  • Review container-level memory and CPU requests and limits across the cluster
  • Assess node-level resource utilization to detect fragmentation (e.g., memory maxed out while CPU remains idle)
  • Compare the vCPU-to-memory ratio of node types to the average resource profile of scheduled workloads
  • Check whether mixed workload types are scheduled onto shared nodes, leading to inefficient bin-packing
  • Determine if better alignment could be achieved using memory-optimized (e.g., R6g) or compute-optimized (e.g., C6g) instances
  • Engage with platform teams to review the rationale behind current node type selection
Remediation

Update node groups to use EC2 instance types with resource ratios better suited to the workloads they support. Where applicable, split workloads into dedicated node groups by profile (e.g., memory-heavy vs. compute-heavy) and apply appropriate instance families. For autoscaling clusters, consider enabling mixed-instance policies to allow better flexibility and reduce scheduling inefficiencies.

Submit Feedback