diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-05 09:41:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-05 09:41:27 +0100 |
commit | 0188f4acf60f33b09940c35c6e1c4d435ceb2891 (patch) | |
tree | 9fdf02989fc7f776ea44112a4fa758d546f1edb5 | |
parent | 40a43776c002af68496a4369b24c8e67db7618d6 (diff) | |
parent | 3ac94879293d5f536266186eb3939046e73c6aac (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…
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 |