aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-08-11 14:38:13 +0200
committerJon Bratseth <bratseth@gmail.com>2022-08-11 14:38:13 +0200
commit8f4df15e0318a2fdd7ba01a4a83771af9b673bd4 (patch)
tree1177429e47285c575046778eb69bd02b9a4eb6d2 /node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale
parent53059709ae18fc2a5460da6e698b8c4e9d994b54 (diff)
Simplify
Diffstat (limited to 'node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java30
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Loader.java20
2 files changed, 22 insertions, 28 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
index acd80f844b8..069805bbe8d 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
@@ -63,7 +63,6 @@ public class AutoscalingTest {
@Test
public void test_no_autoscaling_with_no_measurements() {
var fixture = AutoscalingTester.fixture().build();
- System.out.println(fixture.autoscale());
assertTrue(fixture.autoscale().target().isEmpty());
}
@@ -71,7 +70,7 @@ public class AutoscalingTest {
@Test
public void test_autoscaling_up_is_fast() {
var fixture = AutoscalingTester.fixture().build();
- fixture.loader().applyLoad(1.0, 1.0, 1.0, 3);
+ fixture.loader().applyLoad(new Load(1.0, 1.0, 1.0), 3);
fixture.tester().assertResources("Scaling up since resource usage is too high",
10, 1, 7.2, 8.5, 92.6,
fixture.autoscale());
@@ -168,7 +167,7 @@ public class AutoscalingTest {
.capacity(Capacity.from(min, max)).build();
fixture.tester().clock().advance(Duration.ofDays(1));
- fixture.loader().applyLoad(0.25, 0.95, 0.95, 120);
+ fixture.loader().applyLoad(new Load(0.25, 0.95, 0.95), 120);
fixture.tester().assertResources("Scaling up to limit since resource usage is too high",
6, 1, 2.4, 78.0, 79.0,
fixture.autoscale());
@@ -182,7 +181,7 @@ public class AutoscalingTest {
// deploy
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.05f, 0.05f, 0.05f, 120);
+ fixture.loader().applyLoad(new Load(0.05f, 0.05f, 0.05f), 120);
fixture.tester().assertResources("Scaling down to limit since resource usage is low",
4, 1, 1.8, 7.4, 13.9,
fixture.autoscale());
@@ -204,7 +203,7 @@ public class AutoscalingTest {
2, 1, defaultResources,
fixture.nodes().toResources());
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.25, 0.95, 0.95, 120);
+ fixture.loader().applyLoad(new Load(0.25, 0.95, 0.95), 120);
fixture.tester().assertResources("Scaling up",
5, 1,
defaultResources.vcpu(), defaultResources.memoryGb(), defaultResources.diskGb(),
@@ -252,8 +251,7 @@ public class AutoscalingTest {
.build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.01, 0.01, 0.01, 120);
- System.out.println("Asking for suggestion ...");
+ fixture.loader().applyLoad(new Load(0.01, 0.01, 0.01), 120);
Autoscaler.Advice suggestion = fixture.suggest();
fixture.tester().assertResources("Choosing the remote disk flavor as it has less disk",
2, 1, 3.0, 100.0, 10.0,
@@ -276,7 +274,7 @@ public class AutoscalingTest {
.build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.01, 0.01, 0.01, 120);
+ fixture.loader().applyLoad(new Load(0.01, 0.01, 0.01), 120);
Autoscaler.Advice suggestion = fixture.suggest();
fixture.tester().assertResources("Always prefers local disk for content",
2, 1, 3.0, 100.0, 75.0,
@@ -300,7 +298,7 @@ public class AutoscalingTest {
public void not_using_out_of_service_measurements() {
var fixture = AutoscalingTester.fixture().build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.9, 0.6, 0.7, 1, false, true, 120);
+ fixture.loader().applyLoad(new Load(0.9, 0.6, 0.7), 1, false, true, 120);
assertTrue("Not scaling up since nodes were measured while cluster was out of service",
fixture.autoscale().target().isEmpty());
}
@@ -309,7 +307,7 @@ public class AutoscalingTest {
public void not_using_unstable_measurements() {
var fixture = AutoscalingTester.fixture().build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.9, 0.6, 0.7, 1, true, false, 120);
+ fixture.loader().applyLoad(new Load(0.9, 0.6, 0.7), 1, true, false, 120);
assertTrue("Not scaling up since nodes were measured while cluster was unstable",
fixture.autoscale().target().isEmpty());
}
@@ -393,7 +391,7 @@ public class AutoscalingTest {
.capacity(Capacity.from(min, max))
.build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(0.16, 0.02, 0.5, 120);
+ fixture.loader().applyLoad(new Load(0.16, 0.02, 0.5), 120);
fixture.tester().assertResources("Scaling down",
6, 1, 3.0, 4.0, 100.0,
fixture.autoscale());
@@ -417,7 +415,7 @@ public class AutoscalingTest {
var fixture = AutoscalingTester.fixture()
.resourceCalculator(new OnlySubtractingWhenForecastingCalculator(0))
.build();
- fixture.loader().applyLoad(1.0, 1.0, 0.7, 1000);
+ fixture.loader().applyLoad(new Load(1.0, 1.0, 0.7), 1000);
fixture.tester().assertResources("Scaling up",
9, 1, 5.0, 9.6, 72.9,
fixture.autoscale());
@@ -427,7 +425,7 @@ public class AutoscalingTest {
var fixture = AutoscalingTester.fixture()
.resourceCalculator(new OnlySubtractingWhenForecastingCalculator(3))
.build();
- fixture.loader().applyLoad(1.0, 1.0, 0.7, 1000);
+ fixture.loader().applyLoad(new Load(1.0, 1.0, 0.7), 1000);
fixture.tester().assertResources("With 3Gb memory tax, we scale up memory more",
7, 1, 6.4, 15.8, 97.2,
fixture.autoscale());
@@ -584,7 +582,7 @@ public class AutoscalingTest {
.zone(new Zone(Environment.dev, RegionName.from("us-east")))
.build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(1.0, 1.0, 1.0, 200);
+ fixture.loader().applyLoad(new Load(1.0, 1.0, 1.0), 200);
assertTrue("Not attempting to scale up because policies dictate we'll only get one node",
fixture.autoscale().target().isEmpty());
}
@@ -605,7 +603,7 @@ public class AutoscalingTest {
.zone(new Zone(Environment.dev, RegionName.from("us-east")))
.build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(1.0, 1.0, 1.0, 200);
+ fixture.loader().applyLoad(new Load(1.0, 1.0, 1.0), 200);
fixture.tester().assertResources("We scale even in dev because resources are required",
3, 1, 1.0, 7.7, 83.3,
fixture.autoscale());
@@ -624,7 +622,7 @@ public class AutoscalingTest {
.zone(new Zone(Environment.dev, RegionName.from("us-east")))
.build();
fixture.tester().clock().advance(Duration.ofDays(2));
- fixture.loader().applyLoad(1.0, 1.0, 1.0, 200);
+ fixture.loader().applyLoad(new Load(1.0, 1.0, 1.0), 200);
fixture.tester().assertResources("We scale even in dev because resources are required",
3, 1, 1.5, 8, 50,
fixture.autoscale());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Loader.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Loader.java
index e668863bb9b..7aaaceb0fdd 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Loader.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Loader.java
@@ -90,9 +90,6 @@ public class Loader {
NodeList nodes = fixture.nodes();
float oneExtraNodeFactor = (float)(nodes.size() - 1.0) / (nodes.size());
Load load = new Load(idealLoad.cpu(), value, idealLoad.disk()).multiply(oneExtraNodeFactor);
- System.out.println("Applying " + load);
- System.out.println(" ideal " + idealLoad);
- System.out.println("");
for (int i = 0; i < count; i++) {
fixture.tester().clock().advance(samplingInterval);
for (Node node : nodes) {
@@ -107,19 +104,18 @@ public class Loader {
}
}
- public Duration addMeasurements(double cpu, double memory, double disk, int count) {
- return addMeasurements(cpu, memory, disk, 0, true, true, count);
+ public Duration addMeasurements(Load load, int count) {
+ return addMeasurements(load, 0, true, true, count);
}
- public Duration addMeasurements(double cpu, double memory, double disk, int generation, boolean inService, boolean stable,
- int count) {
+ public Duration addMeasurements(Load load, int generation, boolean inService, boolean stable, int count) {
Instant initialTime = fixture.tester().clock().instant();
for (int i = 0; i < count; i++) {
fixture.tester().clock().advance(samplingInterval);
for (Node node : fixture.nodes()) {
fixture.tester().nodeMetricsDb().addNodeMetrics(List.of(new Pair<>(node.hostname(),
new NodeMetricSnapshot(fixture.tester().clock().instant(),
- new Load(cpu, memory, disk),
+ load,
generation,
inService,
stable,
@@ -129,14 +125,14 @@ public class Loader {
return Duration.between(initialTime, fixture.tester().clock().instant());
}
- public void applyLoad(double cpuLoad, double memoryLoad, double diskLoad, int measurements) {
- addMeasurements(cpuLoad, memoryLoad, diskLoad, measurements);
+ public void applyLoad(Load load, int measurements) {
+ addMeasurements(load, measurements);
fixture.tester().clock().advance(samplingInterval.negated().multipliedBy(measurements));
addQueryRateMeasurements(measurements, t -> t == 0 ? 20.0 : 10.0); // Query traffic only
}
- public void applyLoad(double cpuLoad, double memoryLoad, double diskLoad, int generation, boolean inService, boolean stable, int measurements) {
- addMeasurements(cpuLoad, memoryLoad, diskLoad, generation, inService, stable, measurements);
+ public void applyLoad(Load load, int generation, boolean inService, boolean stable, int measurements) {
+ addMeasurements(load, generation, inService, stable, measurements);
fixture.tester().clock().advance(samplingInterval.negated().multipliedBy(measurements));
addQueryRateMeasurements(measurements, t -> t == 0 ? 20.0 : 10.0); // Query traffic only
}