diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-01 11:37:15 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-01 11:37:15 +0100 |
commit | 7afa23e3b9a09c035986d7d4cf6756aa230aab6b (patch) | |
tree | 9bf868f73e6835143cded201d8aba57290f6b0a2 /configserver/src/main/java/com/yahoo/vespa/config/server/tenant | |
parent | da5368d7840421dea6b7fbc3957b6d1a77ca9bc0 (diff) |
Require that you have at least 1G per thread as each of them can require quite a lot during expression parsing.
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/tenant')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java index 1499100307c..0a50bac541e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java @@ -221,9 +221,12 @@ public class TenantRepository { } private ExecutorService createModelBuilderExecutor(int numThreads) { + final long GB = 1024*1024*1024; if (numThreads == 0) return new InThreadExecutorService(); if (numThreads < 0) { - numThreads = Runtime.getRuntime().availableProcessors(); + long maxHeap = Runtime.getRuntime().maxMemory(); + int maxThreadsToFitInMemory = (int)(maxHeap / 1*GB); + numThreads = Math.min(Runtime.getRuntime().availableProcessors(), maxThreadsToFitInMemory); } return Executors.newFixedThreadPool(numThreads, ThreadFactoryFactory.getDaemonThreadFactory("deploy-helper")); } @@ -348,7 +351,7 @@ public class TenantRepository { PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(configserverConfig); SessionPreparer sessionPreparer = new SessionPreparer(modelFactoryRegistry, fileDistributionFactory, - deployHelperExecutor, + deployHelperExecutor, hostProvisionerProvider, permanentApplicationPackage, configserverConfig, |