summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-10-25 13:35:24 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-10-25 13:35:24 +0200
commit3f77ed130bcd58f4aaa9c1e792851f168328128c (patch)
tree557c750c6bd09ec2dc7a193bb9b90ee5ee168dba
parent9c9e523ae0bbc1256886d9809fce9a1e8bb2438f (diff)
If System name is dev enable G1GC
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java31
-rwxr-xr-xconfig-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java13
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