Grab's real-time data platform team, Coban, has been optimizing the performance of Go applications running on Kubernetes. This post details the challenges encountered with CPU throttling and Vertical Pod Autoscaler (VPA) when using non-integer CPU allocations. The team discovered that the `AUTO-GOMAXPROCS` setting in Go rounds down non-integer CPU values, leading to performance degradation and consumer lag. By ensuring VPA proposes integer CPU values (especially for high-resource pipelines) and by setting a minimum integer CPU value for critical pipelines, they improved performance and resource utilization.
All Grab trails