This sort of tuning isn't necessary if you use CPU reservations instead of limits, as you should: https://home.robusta.dev/blog/stop-using-cpu-limits CPU reservations are limits, just implicit ones and declared as guarantees. So let the Go runtime use all the CPUs available, and let the Linux scheduler throttle according to your declared reservations if the CPU is contended for.
As the node fills up with more and more other pods, it's possible that a pod that was running just fine a moment ago is crawling to a halt.
Limits allow me to simulate the same behavior and plan for it by doing the right capacity planning.
They are not the only way to approach it! But they are the simplest way to so it.