summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-01-05 09:41:27 +0100
committerGitHub <noreply@github.com>2022-01-05 09:41:27 +0100
commit0188f4acf60f33b09940c35c6e1c4d435ceb2891 (patch)
tree9fdf02989fc7f776ea44112a4fa758d546f1edb5
parent40a43776c002af68496a4369b24c8e67db7618d6 (diff)
parent3ac94879293d5f536266186eb3939046e73c6aac (diff)
Merge pull request #20651 from vespa-engine/balder/reduce-default-max-memory-gain-before-flush-from-12.5-to-10-percent
Reduce allowed memorygain from 12.5% to 10% in order to reduce max me…
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java6
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java8
3 files changed, 9 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java
index 3af0b49de82..4d03733de51 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java
@@ -14,6 +14,8 @@ import static java.lang.Long.max;
*/
public class NodeResourcesTuning implements ProtonConfig.Producer {
+ private final static double SUMMARY_CACHE_SIZE_FRACTION_OF_MEMORY = 0.05;
+ private final static double MEMORY_GAIN_FRACTION_OF_MEMORY = 0.10;
final static long MB = 1024 * 1024;
public final static long GB = MB * 1024;
// This is an approximate number base on observation of a node using 33G memory with 765M docs
@@ -61,7 +63,7 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
}
private void tuneSummaryCache(ProtonConfig.Summary.Cache.Builder builder) {
- long memoryLimitBytes = (long) ((usableMemoryGb() * 0.05) * GB);
+ long memoryLimitBytes = (long) ((usableMemoryGb() * SUMMARY_CACHE_SIZE_FRACTION_OF_MEMORY) * GB);
builder.maxbytes(memoryLimitBytes);
}
@@ -92,7 +94,7 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
}
private void tuneFlushStrategyMemoryLimits(ProtonConfig.Flush.Memory.Builder builder) {
- long memoryLimitBytes = (long) ((usableMemoryGb() / 8) * GB);
+ long memoryLimitBytes = (long) ((usableMemoryGb() * MEMORY_GAIN_FRACTION_OF_MEMORY) * GB);
builder.maxmemory(memoryLimitBytes);
builder.each.maxmemory(memoryLimitBytes);
}
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index 5fdd2974643..0f3121afd24 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -2165,7 +2165,7 @@ public class ModelProvisioningTest {
ProtonConfig cfg = getProtonConfig(model, cluster.getSearchNodes().get(0).getConfigId());
assertEquals(2000, cfg.flush().memory().maxtlssize()); // from config override
assertEquals(1000, cfg.flush().memory().maxmemory()); // from explicit tuning
- assertEquals((long) ((128 - reservedMemoryGb) * GB / 8), cfg.flush().memory().each().maxmemory()); // from default node flavor tuning
+ assertEquals((long) ((128 - reservedMemoryGb) * GB * 0.10), cfg.flush().memory().each().maxmemory()); // from default node flavor tuning
}
private static ProtonConfig getProtonConfig(VespaModel model, String configId) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java
index e2645e0b39e..ff2ef5bd214 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java
@@ -125,10 +125,10 @@ public class NodeResourcesTuningTest {
@Test
public void require_that_flush_strategy_memory_limits_are_set_based_on_available_memory() {
- assertFlushStrategyMemory(512 * MB, 4);
- assertFlushStrategyMemory(1 * GB, 8);
- assertFlushStrategyMemory(3 * GB, 24);
- assertFlushStrategyMemory(8 * GB, 64);
+ assertFlushStrategyMemory((long)(4 * GB * 0.10), 4);
+ assertFlushStrategyMemory((long)(8 * GB * 0.10), 8);
+ assertFlushStrategyMemory((long)(24 * GB * 0.10), 24);
+ assertFlushStrategyMemory((long)(64 * GB * 0.10), 64);
}
@Test