diff options
author | Ben Buzbee <bbuzbee@cloudflare.com> | 2020-09-17 00:52:01 +0000 |
---|---|---|
committer | Ben Buzbee <bbuzbee@cloudflare.com> | 2020-09-30 20:32:33 +0000 |
commit | 12731f4271ea1c42d7501b9e626044cf9aa369ca (patch) | |
tree | 2e01af8f6506f9cc949aef10a5cc4c694769841a | |
parent | ae59e529791e4763aaa25eee818605f17699fc67 (diff) |
Use consistent thread configuration for sandbox go runtime
With cgroups configured NumCPU is correct, however GOMAXPROCS is still derived from total host core count and ignores cgroup restrictions. This can lead to different and undesired behavior across different hosts.
For example, the total number of threads in the guest process will be larger on machines with more cores.
This change configures the go runtime for the sandbox to only use the number of threads consistent with its restrictions.
-rw-r--r-- | runsc/boot/loader.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/runsc/boot/loader.go b/runsc/boot/loader.go index 4940ea96a..7fb6dc043 100644 --- a/runsc/boot/loader.go +++ b/runsc/boot/loader.go @@ -282,6 +282,7 @@ func New(args Args) (*Loader, error) { args.NumCPU = runtime.NumCPU() } log.Infof("CPUs: %d", args.NumCPU) + runtime.GOMAXPROCS(args.NumCPU) if args.TotalMem > 0 { // Adjust the total memory returned by the Sentry so that applications that |