diff options
author | Arne Juul <arnej@yahooinc.com> | 2022-11-10 15:06:41 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2022-11-14 13:03:30 +0000 |
commit | 9b8362b1bc04ae8b101790fcde9909ed5595dc8c (patch) | |
tree | c46fc665744357688a9979334ecf27caaa2641d1 /client | |
parent | d308934d6d55c6661f881b30aa4ad3a850b66321 (diff) |
use common code for CpuCount
Diffstat (limited to 'client')
-rw-r--r-- | client/go/jvm/application_container.go | 35 | ||||
-rw-r--r-- | client/go/jvm/options.go | 21 | ||||
-rw-r--r-- | client/go/jvm/run.go | 6 | ||||
-rw-r--r-- | client/go/jvm/standalone_container.go | 11 |
4 files changed, 36 insertions, 37 deletions
diff --git a/client/go/jvm/application_container.go b/client/go/jvm/application_container.go index 44e4f64fd2f..2387ad66269 100644 --- a/client/go/jvm/application_container.go +++ b/client/go/jvm/application_container.go @@ -6,8 +6,6 @@ package jvm import ( "fmt" "os" - "strconv" - "strings" "github.com/vespa-engine/vespa/client/go/defaults" "github.com/vespa-engine/vespa/client/go/trace" @@ -121,15 +119,15 @@ func (a *ApplicationContainer) configureMemory(qc *QrStartConfig) { func (a *ApplicationContainer) configureGC(qc *QrStartConfig) { if extra := qc.Jvm.Gcopts; extra != "" { - a.jvmArgs.AddJvmArgsFromString(extra) + a.JvmOptions().AddJvmArgsFromString(extra) } if qc.Jvm.Verbosegc { - a.jvmArgs.AddOption("-Xlog:gc") + a.JvmOptions().AddOption("-Xlog:gc") } } func (a *ApplicationContainer) configureClasspath(qc *QrStartConfig) { - opts := a.jvmArgs + opts := a.JvmOptions() if cp := qc.Jdisc.ClasspathExtra; cp != "" { opts.classPath = append(opts.classPath, cp) } @@ -138,32 +136,13 @@ func (a *ApplicationContainer) configureClasspath(qc *QrStartConfig) { func (a *ApplicationContainer) configureCPU(qc *QrStartConfig) { cnt := qc.Jvm.AvailableProcessors if cnt > 0 { - trace.Trace("using", cnt, "from qr-start config") - } else { - 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("using", cnt, "from nproc --all") - } - } - } - if cnt > 0 { - num := strconv.Itoa(cnt) - a.jvmArgs.AddOption("-XX:ActiveProcessorCount=" + num) + trace.Trace("CpuCount: using", cnt, "from qr-start config") } + a.JvmOptions().ConfigureCpuCount(cnt) } -func (a *ApplicationContainer) addJvmArgs(opts *Options) { - if a.jvmArgs != nil { - panic("can only set jvmArgs once") - } - a.jvmArgs = opts +func (a *ApplicationContainer) configureOptions() { + opts := a.JvmOptions() opts.AddOption("-Dconfig.id=" + a.ConfigId()) if env := os.Getenv(VESPA_CONTAINER_JVMARGS); env != "" { opts.AddJvmArgsFromString(env) 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)) + } +} diff --git a/client/go/jvm/run.go b/client/go/jvm/run.go index 44da3bbace0..01111e8a1a4 100644 --- a/client/go/jvm/run.go +++ b/client/go/jvm/run.go @@ -27,10 +27,10 @@ func NewApplicationContainer(extraArgs []string) Container { var a ApplicationContainer a.configId = os.Getenv(util.ENV_CONFIG_ID) a.serviceName = os.Getenv(util.ENV_SERVICE_NAME) - opts := NewOptions(&a) - a.addJvmArgs(opts) + a.jvmArgs = NewOptions(&a) + a.configureOptions() for _, x := range extraArgs { - opts.AddOption(x) + a.JvmOptions().AddOption(x) } return &a } diff --git a/client/go/jvm/standalone_container.go b/client/go/jvm/standalone_container.go index 799e1f2eb02..a2181ed7c3e 100644 --- a/client/go/jvm/standalone_container.go +++ b/client/go/jvm/standalone_container.go @@ -32,11 +32,9 @@ func (a *StandaloneContainer) ConfigId() string { return "" } -func (a *StandaloneContainer) addJvmArgs(opts *Options) { - if a.jvmArgs != nil { - panic("can only set jvmArgs once") - } - a.jvmArgs = opts +func (a *StandaloneContainer) configureOptions() { + opts := a.jvmArgs + opts.ConfigureCpuCount(0) opts.AddCommonXX() opts.AddOption("-XX:-OmitStackTraceInFastThrow") opts.AddCommonOpens() @@ -54,7 +52,8 @@ func (a *StandaloneContainer) addJvmArgs(opts *Options) { func NewStandaloneContainer(svcName string) Container { var a StandaloneContainer a.serviceName = svcName - a.addJvmArgs(NewOptions(&a)) + a.jvmArgs = NewOptions(&a) + a.configureOptions() return &a } |