Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
runtime: network blips during concurrent GC #20457
What version of Go are you using (
I note that the
I forgot to add that I instrumented the Go runtime and can see lots of calls to
I'm reasonably convinced that what I'm seeing is CPU starvation of my load generator. I tweaked the output of
I tried disabling idle GC workers which significantly reduced the CPU spikes during GC, but made latencies much worse:
In the above trace,
CPU usage during marking is much lower than stock go1.8.1:
The downside to removing the idle GC workers is that the GC periods are about twice as long.
Seems like there is a high-level question to be answered about how much CPU GC should use when the process is not CPU limited.
referenced this issue
May 25, 2017
You're right that at the moment it's possible for not all idle Ps to help with GC. This is #14179 (which we fixed once, but the fix was broken, so then we unfixed it).
Yes. :) But I don't know what the answer is. Ideally we'd get the OS scheduler involved, since it's the only thing that knows what CPU resources are really idle. But (right now) we need global coordination between the GC workers, so we can't just run them at OS idle priority.
Thanks for all the traces and debugging! Closing as a dup of #17969.