diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-10-14 20:57:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-14 20:57:42 +0200 |
commit | df3f139eed4418df8b104980346f26d0f233ce68 (patch) | |
tree | ae83d46f269bbceec0c0f41b98929816e80233f1 | |
parent | 05872ff6ae45a6b71bb23021939153a4fd9fefd3 (diff) | |
parent | e2c38221f0a93298e8f785d927c404607dc91854 (diff) |
Merge pull request #10979 from vespa-engine/balder/unify-qrstart-config-generation
Unify qrstart config generation
7 files changed, 25 insertions, 45 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java index 9ea51a83bf1..2a0cfadbfa8 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java @@ -15,7 +15,7 @@ public class LogserverContainer extends Container { public LogserverContainer(AbstractConfigProducer parent) { super(parent, "" + 0, 0); addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, ((LogserverContainerCluster) parent).getName(), true)); - appendJvmOptions("-Xms32m -Xmx512m"); + appendJvmOptions("-Xms32m"); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java index 9b57f4ace95..5714d41ef67 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.model.admin; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.container.handler.ThreadpoolConfig; -import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.component.Handler; @@ -23,14 +22,6 @@ public class LogserverContainerCluster extends ContainerCluster<LogserverContain @Override protected void doPrepare(DeployState deployState) { } - // Switch off verbose:gc, it's very noisy when Xms < Xmx - @Override - public void getConfig(QrStartConfig.Builder builder) { - super.getConfig(builder); - // This takes effect via vespa-start-container-daemon:configure_gcopts - builder.jvm.verbosegc(false); - } - @Override public void getConfig(ThreadpoolConfig.Builder builder) { builder.maxthreads(10); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java index 38b18429f1d..f8b4e1111c7 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java @@ -9,7 +9,6 @@ import com.yahoo.container.BundlesConfig; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.log.LogLevel; import com.yahoo.osgi.provider.model.ComponentModel; -import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.config.content.FleetcontrollerConfig; import com.yahoo.vespa.model.application.validation.RestartConfigs; import com.yahoo.vespa.model.container.Container; @@ -28,8 +27,7 @@ import static com.yahoo.vespa.defaults.Defaults.getDefaults; @RestartConfigs({FleetcontrollerConfig.class, ZookeeperServerConfig.class}) public class ClusterControllerContainer extends Container implements BundlesConfig.Producer, - ZookeeperServerConfig.Producer, - QrStartConfig.Producer + ZookeeperServerConfig.Producer { private static final ComponentSpecification CLUSTERCONTROLLER_BUNDLE = new ComponentSpecification("clustercontroller-apps"); private static final ComponentSpecification ZKFACADE_BUNDLE = new ComponentSpecification("zkfacade"); @@ -108,13 +106,4 @@ public class ClusterControllerContainer extends Container implements builder.myid(index()); } - @Override - public void getConfig(QrStartConfig.Builder builder) { - builder.jvm - .verbosegc(false) - .availableProcessors(2) - .heapsize(512) - .heapSizeAsPercentageOfPhysicalMemory(0); - } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java index 5d78c3cec75..f0f7796acdb 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -26,7 +26,6 @@ import com.yahoo.config.provision.Zone; import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; import com.yahoo.osgi.provider.model.ComponentModel; -import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.admin.Admin; import com.yahoo.vespa.model.admin.monitoring.MetricSet; @@ -68,7 +67,6 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC ApplicationDimensionsConfig.Producer, ConsumersConfig.Producer, MonitoringConfig.Producer, - QrStartConfig.Producer, ThreadpoolConfig.Producer { public static final Logger log = Logger.getLogger(MetricsProxyContainerCluster.class.getName()); @@ -149,18 +147,6 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC } } - // Switch off verbose:gc, because it's very noisy when Xms < Xmx - @Override - public void getConfig(QrStartConfig.Builder builder) { - super.getConfig(builder); - // This takes effect via vespa-start-container-daemon:configure_gcopts - builder.jvm - .verbosegc(false) - .availableProcessors(2) - .heapSizeAsPercentageOfPhysicalMemory(0) - .heapsize(512); - } - @Override public void getConfig(ThreadpoolConfig.Builder builder) { builder.maxthreads(10); 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 414b127d6c4..55f6a0b3825 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 @@ -14,6 +14,7 @@ import com.yahoo.container.jdisc.ContainerMbusConfig; import com.yahoo.container.jdisc.messagebus.MbusServerProvider; import com.yahoo.jdisc.http.ServletPathsConfig; import com.yahoo.osgi.provider.model.ComponentModel; +import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.config.search.RankProfilesConfig; import com.yahoo.vespa.config.search.core.RankingConstantsConfig; import com.yahoo.vespa.defaults.Defaults; @@ -41,6 +42,7 @@ import java.util.stream.Stream; */ public final class ApplicationContainerCluster extends ContainerCluster<ApplicationContainer> implements BundlesConfig.Producer, + QrStartConfig.Producer, RankProfilesConfig.Producer, RankingConstantsConfig.Producer, ServletPathsConfig.Producer, @@ -178,6 +180,19 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat getDocproc().getConfig(builder); } + @Override + public void getConfig(QrStartConfig.Builder builder) { + super.getConfig(builder); + builder.jvm.verbosegc(true) + .availableProcessors(0) + .heapsize(1536); + if (getMemoryPercentage().isPresent()) { + builder.jvm.heapSizeAsPercentageOfPhysicalMemory(getMemoryPercentage().get()); + } else if (isHostedVespa()) { + builder.jvm.heapSizeAsPercentageOfPhysicalMemory(getHostClusterId().isPresent() ? 17 : 60); + } + } + public Optional<TlsSecrets> getTlsSecrets() { return tlsSecrets; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 4e043b0f2bf..a1aef1c0c91 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -484,13 +484,12 @@ public abstract class ContainerCluster<CONTAINER extends Container> @Override public void getConfig(QrStartConfig.Builder builder) { - QrStartConfig.Jvm.Builder jvmBuilder = builder.jvm; - if (getMemoryPercentage().isPresent()) { - jvmBuilder.heapSizeAsPercentageOfPhysicalMemory(getMemoryPercentage().get()); - } else if (isHostedVespa()) { - jvmBuilder.heapSizeAsPercentageOfPhysicalMemory(getHostClusterId().isPresent() ? 17 : 60); - } - jvmBuilder.gcopts(Objects.requireNonNullElse(jvmGCOptions, G1GC)); + builder.jvm + .verbosegc(false) + .availableProcessors(2) + .heapsize(512) + .heapSizeAsPercentageOfPhysicalMemory(0) + .gcopts(Objects.requireNonNullElse(jvmGCOptions, G1GC)); if (environmentVars != null) { builder.qrs.env(environmentVars); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java index ec8a810c1a7..695e82daf0b 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java @@ -151,11 +151,11 @@ public class ContainerClusterTest { ClusterControllerContainerCluster cluster = createClusterControllerCluster(root); addClusterController(root.deployLogger(), cluster, "host-c1"); assertEquals(1, cluster.getContainers().size()); - ClusterControllerContainer container = (ClusterControllerContainer) cluster.getContainers().get(0); QrStartConfig.Builder qrBuilder = new QrStartConfig.Builder(); - container.getConfig(qrBuilder); + cluster.getConfig(qrBuilder); QrStartConfig qrStartConfig = new QrStartConfig(qrBuilder); assertEquals(512, qrStartConfig.jvm().heapsize()); + assertEquals(0, qrStartConfig.jvm().heapSizeAsPercentageOfPhysicalMemory()); ThreadpoolConfig.Builder tpBuilder = new ThreadpoolConfig.Builder(); cluster.getConfig(tpBuilder); |