diff options
Diffstat (limited to 'client/go/jvm/options.go')
-rw-r--r-- | client/go/jvm/options.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/client/go/jvm/options.go b/client/go/jvm/options.go index cbaaa32cfc3..dae66690966 100644 --- a/client/go/jvm/options.go +++ b/client/go/jvm/options.go @@ -5,6 +5,7 @@ package jvm import ( "fmt" + "strconv" "strings" "github.com/vespa-engine/vespa/client/go/defaults" @@ -75,3 +76,23 @@ func (opts *Options) AddJvmArgsFromString(args string) { opts.AppendOption(x) } } + +func (opts *Options) ConfigureCpuCount(cnt int) { + if cnt <= 0 { + out, err := util.BackTicksForwardStderr.Run("nproc", "--all") + if err != nil { + trace.Trace("failed nproc:", err) + } else { + cnt, err = strconv.Atoi(strings.TrimSpace(out)) + if err != nil { + trace.Trace("bad nproc output:", strings.TrimSpace(out)) + cnt = 0 + } else { + trace.Trace("CpuCount: using", cnt, "from nproc --all") + } + } + } + if cnt > 0 { + opts.AddOption(fmt.Sprintf("-XX:ActiveProcessorCount=%d", cnt)) + } +} |