summaryrefslogtreecommitdiffstats
path: root/config-model/src/main
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-02-24 13:03:19 +0000
committerGeir Storli <geirst@yahooinc.com>2022-02-24 13:03:19 +0000
commit24d719637a8b047021741f517e8b85dfc2e69f33 (patch)
tree160bb2e52669ce4ab1be4dd9c18870fa8a534db4 /config-model/src/main
parent122aa5b6f4f7c61b8662df6e2115a91af640de33 (diff)
Give content nodes more headroom when deriving resource limit for disk.
This ensures content nodes can handle larger spikes in transient disk usage during disk index fusion. This is a follow up from https://github.com/vespa-engine/vespa/pull/21179.
Diffstat (limited to 'config-model/src/main')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java
index 80dd17213f3..58098e09d7e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterResourceLimits.java
@@ -91,8 +91,8 @@ public class ClusterResourceLimits {
deriveClusterControllerLimit(ctrlBuilder.getDiskLimit(), nodeBuilder.getDiskLimit(), ctrlBuilder::setDiskLimit);
deriveClusterControllerLimit(ctrlBuilder.getMemoryLimit(), nodeBuilder.getMemoryLimit(), ctrlBuilder::setMemoryLimit);
- deriveContentNodeLimit(nodeBuilder.getDiskLimit(), ctrlBuilder.getDiskLimit(), nodeBuilder::setDiskLimit);
- deriveContentNodeLimit(nodeBuilder.getMemoryLimit(), ctrlBuilder.getMemoryLimit(), nodeBuilder::setMemoryLimit);
+ deriveContentNodeLimit(nodeBuilder.getDiskLimit(), ctrlBuilder.getDiskLimit(), 0.6, nodeBuilder::setDiskLimit);
+ deriveContentNodeLimit(nodeBuilder.getMemoryLimit(), ctrlBuilder.getMemoryLimit(), 0.5, nodeBuilder::setMemoryLimit);
}
private void considerSettingDefaultClusterControllerLimit(Optional<Double> clusterControllerLimit,
@@ -117,15 +117,16 @@ public class ClusterResourceLimits {
private void deriveContentNodeLimit(Optional<Double> contentNodeLimit,
Optional<Double> clusterControllerLimit,
+ double scaleFactor,
Consumer<Double> setter) {
if (contentNodeLimit.isEmpty()) {
clusterControllerLimit.ifPresent(limit ->
- setter.accept(calcContentNodeLimit(limit)));
+ setter.accept(calcContentNodeLimit(limit, scaleFactor)));
}
}
- private double calcContentNodeLimit(double clusterControllerLimit) {
- return clusterControllerLimit + ((1.0 - clusterControllerLimit) / 2);
+ private double calcContentNodeLimit(double clusterControllerLimit, double scaleFactor) {
+ return clusterControllerLimit + ((1.0 - clusterControllerLimit) * scaleFactor);
}