summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-11-10 15:06:41 +0000
committerArne Juul <arnej@yahooinc.com>2022-11-14 13:03:30 +0000
commit9b8362b1bc04ae8b101790fcde9909ed5595dc8c (patch)
treec46fc665744357688a9979334ecf27caaa2641d1 /client
parentd308934d6d55c6661f881b30aa4ad3a850b66321 (diff)
use common code for CpuCount
Diffstat (limited to 'client')
-rw-r--r--client/go/jvm/application_container.go35
-rw-r--r--client/go/jvm/options.go21
-rw-r--r--client/go/jvm/run.go6
-rw-r--r--client/go/jvm/standalone_container.go11
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
}