diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-04-17 13:59:59 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-04-17 13:59:59 +0200 |
commit | ab3a537f40025a8974ac947094e770d1f48133b7 (patch) | |
tree | b121ffa949ced8ef67cace5502c873a3b89c2861 /config-model | |
parent | 2951b57a5a94c9e1a72680aa0d94ecc4a822f419 (diff) |
1 flush thread below 16G, and 2 above.
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java | 10 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java | 12 |
2 files changed, 9 insertions, 13 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 ee18eceb719..2de06e2053a 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 @@ -18,7 +18,6 @@ public class NodeResourcesTuning implements ProtonConfig.Producer { private final static double SUMMARY_CACHE_SIZE_AS_FRACTION_OF_MEMORY = 0.04; private final static double MEMORY_GAIN_AS_FRACTION_OF_MEMORY = 0.08; private final static double MIN_MEMORY_PER_FLUSH_THREAD_GB = 16.0; - private final static double MAX_FLUSH_THREAD_RATIO = 1.0/8; private final static double TLS_SIZE_FRACTION = 0.02; final static long MB = 1024 * 1024; public final static long GB = MB * 1024; @@ -94,13 +93,12 @@ public class NodeResourcesTuning implements ProtonConfig.Producer { } private void tuneFlushConcurrentThreads(ProtonConfig.Flush.Builder builder) { + int max_concurrent = 2; // TODO bring slowly up towards 4 if (usableMemoryGb() < MIN_MEMORY_PER_FLUSH_THREAD_GB) { - builder.maxconcurrent(1); + max_concurrent = 1; } - double min_concurrent_mem = usableMemoryGb() / (2*MIN_MEMORY_PER_FLUSH_THREAD_GB); - double min_concurrent_cpu = resources.vcpu() * MAX_FLUSH_THREAD_RATIO; - builder.maxconcurrent(Math.min(builder.build().maxconcurrent(), - (int)Math.ceil(Math.max(min_concurrent_mem, min_concurrent_cpu)))); + double min_concurrent_mem = usableMemoryGb() / MIN_MEMORY_PER_FLUSH_THREAD_GB; + builder.maxconcurrent(Math.min(max_concurrent, (int)Math.ceil(min_concurrent_mem))); } private void tuneFlushStrategyTlsSize(ProtonConfig.Flush.Memory.Builder builder) { 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 9fe38512fc0..d344be3da9a 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 @@ -182,14 +182,12 @@ public class NodeResourcesTuningTest { } @Test public void require_that_concurrent_flush_threads_is_1_with_low_memory() { - assertEquals(2, fromMemAndCpu(17, 9).flush().maxconcurrent()); - assertEquals(2, fromMemAndCpu(17, 64).flush().maxconcurrent()); // still capped by max - assertEquals(2, fromMemAndCpu(65, 8).flush().maxconcurrent()); // still capped by max - assertEquals(2, fromMemAndCpu(33, 8).flush().maxconcurrent()); - assertEquals(1, fromMemAndCpu(31, 8).flush().maxconcurrent()); - assertEquals(1, fromMemAndCpu(15, 8).flush().maxconcurrent()); - assertEquals(1, fromMemAndCpu(17, 8).flush().maxconcurrent()); + assertEquals(1, fromMemAndCpu(1, 8).flush().maxconcurrent()); assertEquals(1, fromMemAndCpu(15, 8).flush().maxconcurrent()); + assertEquals(1, fromMemAndCpu(16, 8).flush().maxconcurrent()); + assertEquals(2, fromMemAndCpu(17, 8).flush().maxconcurrent()); + assertEquals(2, fromMemAndCpu(65, 8).flush().maxconcurrent()); // still capped by max + assertEquals(2, fromMemAndCpu(65, 65).flush().maxconcurrent()); // still capped by max } private static void assertDocumentStoreMaxFileSize(long expFileSizeBytes, int wantedMemoryGb) { |