diff options
author | Harald Musum <musum@yahoo-inc.com> | 2018-02-12 13:22:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-12 13:22:11 +0100 |
commit | b5b25dd286fd9be627081eb982db26df5a6faba6 (patch) | |
tree | 8328f6e6cd9723f898364657226bbc0a50836e9b | |
parent | 48e1509e7c89c8140615010e3231fcab82c7c8a1 (diff) | |
parent | c6b7aa493e89fb59eedb5b01f28a91d0cc04e52e (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
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( |