Ø Any insight into why setting GOMAXPROCS > numCPU is a win might lead to improving the Go scheduler or perhaps Go / OS interaction.
I’ve found it useful if you happen to have a number of compute-bound goroutines which don’t reschedule. Setting more processes than CPUs causes the kernel to do some scheduling for them. John John Souvestre - New Orleans LA From: golang-nuts@googlegroups.com [mailto:golang-nuts@googlegroups.com] On Behalf Of r...@golang.org Sent: 2016 December 30, Fri 09:53 To: golang-nuts Subject: [go-nuts] Re: too many runtime.gcBgMarkStartWorkers ? The default is GOMAXPROCS == numCPU and the runtime is optimized and tested for this. There are use cases involving co-tenancy where setting GOMAXPROCS < numCPU tells the OS to limit HW allocation and improves overall throughput when several programs are running concurrently. Setting GOMAXPROCS > numCPU seems to indicate that the Go scheduler and the OS scheduler are out of sync. Perhaps the delay between the OS knowing a call is blocked and the Go scheduler knowing it is blocked is the root cause. Any insight into why setting GOMAXPROCS > numCPU is a win might lead to improving the Go scheduler or perhaps Go / OS interaction. On Wednesday, December 28, 2016 at 3:41:31 PM UTC-5, Dave Cheney wrote: There may be a bug here. IMO the runtime should never try to start more that numCPUs background workers regardless of the size of GOMAXPROCS as that'll just cause contention during the GC cycle. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.