summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2018-02-12 13:22:11 +0100
committerGitHub <noreply@github.com>2018-02-12 13:22:11 +0100
commitb5b25dd286fd9be627081eb982db26df5a6faba6 (patch)
tree8328f6e6cd9723f898364657226bbc0a50836e9b
parent48e1509e7c89c8140615010e3231fcab82c7c8a1 (diff)
parentc6b7aa493e89fb59eedb5b01f28a91d0cc04e52e (diff)
Merge pull request #5011 from vespa-engine/hmusum/use-available-processors-as-number-of-rpc-threads-by-default
Hmusum/use available processors as number of rpc threads by default
-rw-r--r--configdefinitions/src/vespa/configserver.def3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/rpc/TestWithRpc.java6
3 files changed, 9 insertions, 3 deletions
diff --git a/configdefinitions/src/vespa/configserver.def b/configdefinitions/src/vespa/configserver.def
index d2cdc30882c..494dae8b086 100644
--- a/configdefinitions/src/vespa/configserver.def
+++ b/configdefinitions/src/vespa/configserver.def
@@ -4,7 +4,8 @@ namespace=cloud.config
# Ports
rpcport int default=19070
httpport int default=19071
-numthreads int default=32
+# 0 means use the number of CPU cores available
+numRpcThreads int default=0
# ZooKeeper
zookeeperserver[].hostname string
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
index 08095c55373..2ef0393e215 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
@@ -116,7 +116,8 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener {
this.metrics = metrics.getOrCreateMetricUpdater(Collections.<String, String>emptyMap());
this.hostLivenessTracker = hostLivenessTracker;
BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(config.maxgetconfigclients());
- executorService = new ThreadPoolExecutor(config.numthreads(), config.numthreads(),
+ int numberOfRpcThreads = config.numRpcThreads() == 0 ? Runtime.getRuntime().availableProcessors() : config.numRpcThreads();
+ executorService = new ThreadPoolExecutor(numberOfRpcThreads, numberOfRpcThreads,
0, TimeUnit.SECONDS, workQueue, ThreadFactoryFactory.getThreadFactory(THREADPOOL_NAME));
delayedConfigResponses = new DelayedConfigResponses(this, config.numDelayedResponseThreads());
spec = new Spec(null, config.rpcport());
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/TestWithRpc.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/TestWithRpc.java
index 12dc584f055..e022b622fb0 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/TestWithRpc.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/TestWithRpc.java
@@ -82,7 +82,11 @@ public class TestWithRpc {
protected void createAndStartRpcServer(boolean hostedVespa) {
ConfigserverConfig configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder());
- rpcServer = new RpcServer(new ConfigserverConfig(new ConfigserverConfig.Builder().rpcport(port).numthreads(1).maxgetconfigclients(1).hostedVespa(hostedVespa)),
+ rpcServer = new RpcServer(new ConfigserverConfig(new ConfigserverConfig.Builder()
+ .rpcport(port)
+ .numRpcThreads(1)
+ .maxgetconfigclients(1)
+ .hostedVespa(hostedVespa)),
new SuperModelRequestHandler(new TestConfigDefinitionRepo(),
configserverConfig,
new SuperModelManager(