Golang 1.25 release – A container native runtime revolution

It’s 2025, and as an industry, we’ve been running mission-critical applications in containers for over a decade. Until now, most runtimes were still designed for VMs, and they could not inspect the memory and CPU resources given to the container to adjust their schedulers. Instead, they pull this information from the host machine, which can cause performance issues. 

I explained this in more depth in a blog post I wrote back in 2019, which, after six years, is finally outdated. In summary, we had to manually set the number of desired threads through environment variables to match the CPU resources specified in the deployment requests, so our runtime wouldn’t create too many threads. 

Now, with this new release, the Go runtime will inspect the container process on the host machine to check how many CPU credits it has been assigned by the underlying OS, allowing it to create threads dynamically. And it gets even better: if the number of CPU credits is increased, the change is hot-reloaded, and the thread count is adjusted accordingly. 

Combine this behavior with the In-place Pod Resize feature (released in Kubernetes 1.33) and the Vertical Pod Autoscaler (stable since Kubernetes 1.25), and you’ve got yourself a Golang autopilot for Kubernetes. 

No more spending hours looking at metrics, profiling the application, understanding CPU utilization patterns, and monitoring CPU throttling to guarantee that your workload runs at peak performance. Set it up once and deliver more value to your business. 

Are you tired of manually tuning threads and watching your CPU throttle? Let’s give your engineers their valuable time back. Chat with our experts at [email protected], and we’ll show you how to set up your Golang autopilot. 

Credits 

Writer: João Moura 

Editor: Luis Vinay 

 Illustrator: Ben Rodríguez

Disclaimer

In this article, AI was used to check grammar and syntax. 

Share this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Share this post