Thursday, August 14, 2025

Kubernetes Calculating the Utilisation and waste

1. What Are Resource Hours?

• Resource hours = requested resources × hours the workload runs.

• This is a way of expressing total reserved capacity over time.

• Example:

• You request 2 CPUs for a pod.

• It runs for 48 hours.

• Total requested CPU hours = 2 CPUs × 48 hours = 96 CPU hours.


Think of this as:

“If you booked a hotel room for 48 hours, you have 48 hours reserved, whether you sleep there or not.”

⸻

2. What’s Actual Usage?

• Kubernetes tracks CPU utilization — how much of that reserved CPU your pod actually uses.

• Example:

• Average usage = 0.5 CPU (half a CPU core) during the 48 hours.

• Total used CPU hours = 0.5 CPUs × 48 hours = 24 CPU hours.

⸻

3. How to Calculate Waste

• Waste = Requested CPU hours − Used CPU hours

• Example:

• Requested = 96 CPU hours

• Used = 24 CPU hours

• Waste = 96 − 24 = 72 CPU hours

⸻

4. Turning Waste Into Cost

Once you know the per-hour cost of a CPU, you can convert waste into dollars:

• Example cost: $0.038 per CPU hour

• Cost of waste = 72 CPU hours × $0.038 = $2.736 (~$2.7 wasted)

⸻

5. Why This Matters in Kubernetes

Kubernetes schedules resources based on your requests, not actual usage:

• If you request 2 CPUs, Kubernetes reserves that capacity for your pod — even if you’re only using 0.5 CPU.

• Over time, unused capacity is waste because:

• It blocks other workloads from using that CPU.

• If you’re paying for the cluster, you’re still paying for the reserved CPU hours.

⸻

Requested resource hours = request_amount × run_hours

Used resource hours      = avg_utilization × run_hours

Waste (hours)            = requested_hours − used_hours

Waste (cost)              = waste_hours × price_per_hour


Recap:

Request:  2 CPUs × 48 hrs = 96 CPU hours

Usage:    0.5 CPUs × 48 hrs = 24 CPU hours

Waste:    96 − 24 = 72 CPU hours

Cost:     72 × $0.038 = $2.736



No comments:

Post a Comment