3 ms·
Static CPU manager also affects the cores that sched_get affinity returns. And that’s what Go uses to obtain the core count.
by EdSchouten 2y ago
Static CPU manager also affects the cores that sched_get affinity returns. And that’s what Go uses to obtain the core count.
- __turbobrew__ 2y agoThat is only true if the pod is running within the guaranteed runtime class (requests==limits). For pods where requests!=limits a common set of cpus are used for all burstable pods, otherwise bursting past requests would not work. This still allows the worst case where a node with 100 cpus running butstable pods will still see huge overheads in the golang scheduling runtime. To my knowledge (I have done a lot of research into not only runc but also gvisor) there is no way to have the go runtime and cgroups interact in a sane way currently by default. If the golang runtime was cgroup aware I do believe it is possible to have sane defaults, especially since the JVM and CLR have done so.