diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-10-25 13:35:24 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-10-25 13:35:24 +0200 |
commit | 3f77ed130bcd58f4aaa9c1e792851f168328128c (patch) | |
tree | 557c750c6bd09ec2dc7a193bb9b90ee5ee168dba | |
parent | 9c9e523ae0bbc1256886d9809fce9a1e8bb2438f (diff) |
If System name is dev enable G1GC
3 files changed, 29 insertions, 17 deletions
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 dc9e1c542d2..4c283fa42ad 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 @@ -140,6 +140,8 @@ public final class ContainerCluster public static final String STATE_HANDLER_CLASS = "com.yahoo.container.jdisc.state.StateHandler"; public static final String STATISTICS_HANDLER_CLASS = "com.yahoo.container.config.StatisticsRequestHandler"; public static final String SIMPLE_LINGUISTICS_PROVIDER = "com.yahoo.language.provider.SimpleLinguisticsProvider"; + public static final String CMS = "-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"; + public static final String G1GC = "-XX:-UseConcMarkSweepGC -XX:+UseG1GC -XX:MaxTenuringThreshold=15"; public static final String ROOT_HANDLER_BINDING = "*://*/"; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java index 3d31106fd9f..46fcf38b7e9 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java @@ -3,6 +3,8 @@ package com.yahoo.vespa.model.container.search; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.SystemName; +import com.yahoo.config.provision.Zone; import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.prelude.fastsearch.FS4ResourcePool; @@ -117,6 +119,20 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> if (pageTemplates!=null) pageTemplates.getConfig(builder); } + private String buildGCOpts(Zone zone) { + Optional<String> gcopts = owningCluster.getGCOpts(); + if (gcopts.isPresent()) { + return gcopts.get(); + } else if (zone.system() == SystemName.dev) { + return ContainerCluster.G1GC; + } else if (owningCluster.isHostedVespa()) { + return ((zone.environment() != Environment.prod) || RegionName.from("us-east-3").equals(zone.region())) + ? ContainerCluster.G1GC : ContainerCluster.CMS; + } else { + return ContainerCluster.CMS; + } + } + @Override public void getConfig(QrStartConfig.Builder qsB) { QrStartConfig.Jvm.Builder internalBuilder = new QrStartConfig.Jvm.Builder(); @@ -126,18 +142,7 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> internalBuilder.heapSizeAsPercentageOfPhysicalMemory(owningCluster.getHostClusterId().isPresent() ? 17 : 60); } qsB.jvm(internalBuilder.directMemorySizeCache(totalCacheSizeMb())); - Optional<String> gcopts = owningCluster.getGCOpts(); - if (gcopts.isPresent()) { - qsB.jvm.gcopts(gcopts.get()); - } else if (owningCluster.isHostedVespa()) { - if ((owningCluster.getZone().environment() != Environment.prod) || RegionName.from("us-east-3").equals(owningCluster.getZone().region())) { - qsB.jvm.gcopts("-XX:-UseConcMarkSweepGC -XX:+UseG1GC -XX:MaxTenuringThreshold=15"); - } else { - qsB.jvm.gcopts("-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"); - } - } else { - qsB.jvm.gcopts("-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"); - } + qsB.jvm.gcopts(buildGCOpts(owningCluster.getZone())); } private int totalCacheSizeMb() { @@ -208,6 +213,6 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> * Struct that encapsulates qrserver options. */ public static class Options { - public Map<String, QrsCache> cacheSettings = new LinkedHashMap<>(); + Map<String, QrsCache> cacheSettings = new LinkedHashMap<>(); } } 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 ee86183dd9e..7051ffda84a 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 @@ -194,14 +194,19 @@ public class ContainerClusterTest { private void verifyGCOpts(boolean isHosted, Zone zone, String expected) { verifyGCOpts(isHosted, null, zone, expected); verifyGCOpts(isHosted, "-XX:+UseG1GC", zone, "-XX:+UseG1GC"); + Zone DEV = new Zone(SystemName.dev, zone.environment(), zone.region()); + verifyGCOpts(isHosted, null, DEV, ContainerCluster.G1GC); + verifyGCOpts(isHosted, "-XX:+UseConcMarkSweepGC", DEV, "-XX:+UseConcMarkSweepGC"); + } @Test public void requireThatGCOptsIsHonoured() { - verifyGCOpts(false, Zone.defaultZone(),"-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"); - verifyGCOpts(false, new Zone(Environment.prod, RegionName.from("us-east-3")), "-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"); - verifyGCOpts(true, Zone.defaultZone(), "-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=15 -XX:NewRatio=1"); - verifyGCOpts(true, new Zone(Environment.prod, RegionName.from("us-east-3")), "-XX:-UseConcMarkSweepGC -XX:+UseG1GC -XX:MaxTenuringThreshold=15"); + final Zone US_EAST_3 = new Zone(Environment.prod, RegionName.from("us-east-3")); + verifyGCOpts(false, Zone.defaultZone(),ContainerCluster.CMS); + verifyGCOpts(false, US_EAST_3, ContainerCluster.CMS); + verifyGCOpts(true, Zone.defaultZone(), ContainerCluster.CMS); + verifyGCOpts(true, US_EAST_3, ContainerCluster.G1GC); } @Test |