aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-04-17 13:59:59 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2023-04-17 13:59:59 +0200
commitab3a537f40025a8974ac947094e770d1f48133b7 (patch)
treeb121ffa949ced8ef67cace5502c873a3b89c2861 /config-model
parent2951b57a5a94c9e1a72680aa0d94ecc4a822f419 (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.java10
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java12
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) {