summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-12-15 18:42:09 +0100
committerGitHub <noreply@github.com>2021-12-15 18:42:09 +0100
commit9d615eec41a3bb7e3cb82a889c217cc1cf02066c (patch)
treeb683ed6c5ae529862156db8f1af426c9bc068060
parent0f6bbcc4d5b29397c7c9b6842a7ebc3749be1850 (diff)
parentbe0e68ea1979643d07e0cea8ca7317fe027f69fd (diff)
Merge pull request #20527 from vespa-engine/bratseth/discard-more-warmup
Discard 2x the warmup window
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterNodesTimeseries.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeTimeseries.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java2
3 files changed, 4 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterNodesTimeseries.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterNodesTimeseries.java
index 5ad4ef2e263..dd35eb7b54d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterNodesTimeseries.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterNodesTimeseries.java
@@ -31,7 +31,7 @@ public class ClusterNodesTimeseries {
// If none can be detected we assume the node is new/was down.
// If either this is the case, or there is a generation change, we ignore
// the first warmupWindow metrics
- var timeseries = db.getNodeTimeseries(period.plus(warmupDuration.multipliedBy(4)), clusterNodes);
+ var timeseries = db.getNodeTimeseries(period.plus(warmupDuration.multipliedBy(8)), clusterNodes);
if (cluster.lastScalingEvent().isPresent()) {
long currentGeneration = cluster.lastScalingEvent().get().generation();
timeseries = keepCurrentGenerationAfterWarmup(timeseries, currentGeneration);
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeTimeseries.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeTimeseries.java
index 4a5f8972e11..c58b08cb3b5 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeTimeseries.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeTimeseries.java
@@ -85,7 +85,7 @@ public class NodeTimeseries {
if (snapshot.generation() < 0) return true; // Content nodes do not yet send generation
if (snapshot.generation() < currentGeneration) return false;
if (generationChange.isEmpty()) return true;
- return ! snapshot.at().isBefore(generationChange.get().plus(warmupDuration));
+ return ! snapshot.at().isBefore(generationChange.get().plus(warmupDuration.multipliedBy(2)));
}
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
index d9037181f59..9052ee30506 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
@@ -211,6 +211,7 @@ public class AutoscalingMaintainerTest {
tester.deploy(app1, cluster1, capacity);
// fast completion
tester.addMeasurements(1.0f, 0.3f, 0.3f, 0, 1, app1);
+ tester.clock().advance(Duration.ofSeconds(150));
tester.addMeasurements(1.0f, 0.3f, 0.3f, 0, 1, app1);
tester.maintainer().maintain();
assertEquals("Scale up: " + tester.cluster(app1, cluster1).autoscalingStatus(),
@@ -219,6 +220,7 @@ public class AutoscalingMaintainerTest {
// fast completion, with initially overloaded cpu
tester.addMeasurements(3.0f, 0.3f, 0.3f, 1, 1, app1);
+ tester.clock().advance(Duration.ofSeconds(150));
tester.addMeasurements(0.2f, 0.3f, 0.3f, 1, 1, app1);
tester.maintainer().maintain();
assertEquals("No autoscaling since we ignore the (first) data point in the warup period",