Why we should get rid of average CPU utilization
Summary
The article argues that average CPU utilization is an insufficient metric for containerized workloads. It explains how CPU limits via cgroups can cause throttling (not reflected in simple utilization graphs), especially due to the 100 ms CFS scheduling period and multi-core bursts. It recommends monitoring deeper signals (cpu.stat, cpu.pressure, steal time) and introduces application-level starvation detection, with Go 1.25 container-aware GOMAXPROCS as part of a more reliable performance strategy.