The core issue: Go automatically spawns threads equal to the number of CPU cores reported by the OS (8 in their case), but Kubernetes with a 750 millicore limit only allowed access to 75% of a single core. This meant all 8 Go threads were competing for limited CPU resources, creating what he describes as "context switch thrashing."
Nicholaos shares how they diagnosed this problem and the counterintuitive solution - reducing
GOMAXPROCS from 8 to 2 - which immediately improved performance.Watch the full episode: https://kube.fmhttps://ku.bz/S-2vQ_j-4