diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model')
3 files changed, 11 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java index e59baf88422..7fe6e97397a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainer.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.model.container; import com.yahoo.config.model.api.container.ContainerServiceType; import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.config.provision.Flavor; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.prelude.fastsearch.FS4ResourcePool; @@ -40,9 +39,12 @@ public final class ApplicationContainer extends Container implements QrStartConf @Override public void getConfig(QrStartConfig.Builder builder) { - if (getHostResource() != null) { + ApplicationContainerCluster cluster = (ApplicationContainerCluster) getParent(); + if (isHostedVespa && getHostResource() != null) { if (getHostResource().getFlavor().isPresent()) { - NodeFlavorTuning flavorTuning = new NodeFlavorTuning(getHostResource().getFlavor().get()); + boolean isCombinedCluster = cluster.getHostClusterId().isPresent(); + NodeFlavorTuning flavorTuning = new NodeFlavorTuning(getHostResource().getFlavor().get(), + cluster.getMemoryPercentage().orElse(isCombinedCluster ? 17 : 60)); flavorTuning.getConfig(builder); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java index 0bdc3fbef9a..647b6429a41 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java @@ -199,8 +199,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat .heapsize(1536); if (getMemoryPercentage().isPresent()) { builder.jvm.heapSizeAsPercentageOfPhysicalMemory(getMemoryPercentage().get()); - } else if (isHostedVespa()) { - builder.jvm.heapSizeAsPercentageOfPhysicalMemory(getHostClusterId().isPresent() ? 17 : 60); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/NodeFlavorTuning.java b/config-model/src/main/java/com/yahoo/vespa/model/container/NodeFlavorTuning.java index 67938b36fd9..381e0bb47f1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/NodeFlavorTuning.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/NodeFlavorTuning.java @@ -12,14 +12,18 @@ import com.yahoo.search.config.QrStartConfig; public class NodeFlavorTuning implements QrStartConfig.Producer { private final Flavor flavor; - - NodeFlavorTuning(Flavor flavor) { + private final double memoryFraction; + NodeFlavorTuning(Flavor flavor, double memoryPercentage) { this.flavor = flavor; + this.memoryFraction = memoryPercentage / 100; } @Override public void getConfig(QrStartConfig.Builder builder) { builder.jvm.availableProcessors(Math.max(2, (int)Math.ceil(flavor.getMinCpuCores()))); + int heapSize = (int)(memoryFraction*flavor.getMinMainMemoryAvailableGb()*1000); + builder.jvm.minHeapsize(heapSize).heapsize(heapSize); + builder.jvm.heapSizeAsPercentageOfPhysicalMemory(0); } } |