diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-12-15 13:14:40 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-12-15 13:14:40 +0100 |
commit | be0e68ea1979643d07e0cea8ca7317fe027f69fd (patch) | |
tree | ae840c2a1bd14a7f006e450e82674a7a276ad365 /node-repository | |
parent | 08ce958004934a27fd6544600ffe2a8d6faa0a46 (diff) |
Discard 2x the warmup window
Diffstat (limited to 'node-repository')
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", |