diff options
Diffstat (limited to 'node-repository/src/test/java/com')
4 files changed, 65 insertions, 65 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 830ff170a90..8374c41ea25 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 @@ -85,7 +85,7 @@ public class AutoscalingTest { fixture.loader().applyCpuLoad(0.7f, 10); var scaledResources = fixture.tester().assertResources("Scaling up since resource usage is too high", - 9, 1, 2.8, 6.8, 288.7, + 9, 1, 3.0, 6.8, 288.7, fixture.autoscale()); fixture.deploy(Capacity.from(scaledResources)); @@ -131,7 +131,7 @@ public class AutoscalingTest { fixture.loader().applyLoad(new Load(0.1, 0.1, 0.1, 0, 0), 3); fixture.loader().applyLoad(new Load(1.0, 1.0, 1.0, 0, 0), 1); fixture.tester().assertResources("Scaling up since resource usage is too high", - 8, 1, 5.3, 17.0, 75.1, + 8, 1, 5.7, 17.0, 75.1, fixture.autoscale()); } @@ -192,7 +192,7 @@ public class AutoscalingTest { fixture.setScalingDuration(Duration.ofHours(12)); // Fixture sets last completion to be 1 day into the past fixture.loader().applyLoad(new Load(1.0, 0.1, 1.0, 0, 0), 10); fixture.tester().assertResources("Scaling up (only) since resource usage is too high", - 5, 1, 11.7, 14.9, 131.5, + 5, 1, 12.5, 14.9, 131.5, fixture.autoscale()); } @@ -204,7 +204,7 @@ public class AutoscalingTest { fixture.tester.clock().advance(Duration.ofDays(2)); fixture.loader().applyLoad(new Load(1.0, 0.1, 1.0, 0, 0), 10); fixture.tester().assertResources("Scaling cpu and disk up and memory down", - 5, 1, 11.7, 4.0, 131.5, + 5, 1, 12.5, 4.0, 131.5, fixture.autoscale()); } @@ -215,7 +215,7 @@ public class AutoscalingTest { fixture.tester.clock().advance(Duration.ofDays(2)); fixture.loader().applyLoad(new Load(1.0, 0.1, 1.0, 0, 0), 10); fixture.tester().assertResources("Scaling cpu and disk up, memory follows", - 16, 1, 4, 8.0, 28.3, + 8, 1, 8, 16.0, 60.7, fixture.autoscale()); } @@ -227,7 +227,7 @@ public class AutoscalingTest { fixture.loader().applyCpuLoad(0.70, 1); fixture.loader().applyCpuLoad(0.01, 100); fixture.tester().assertResources("Scaling up since peak resource usage is too high", - 5, 1, 7.1, 11.9, 50.5, + 5, 1, 7.6, 11.9, 50.5, fixture.autoscale()); } @@ -239,7 +239,7 @@ public class AutoscalingTest { fixture.loader().applyCpuLoad(0.70, 1); fixture.loader().applyCpuLoad(0.01, 100); fixture.tester().assertResources("Scaling up since peak resource usage is too high", - 9, 1, 4, 8.0, 100, + 5, 1, 8, 16.0, 200, fixture.autoscale()); } @@ -251,7 +251,7 @@ public class AutoscalingTest { fixture.loader().applyCpuLoad(0.70, 1); fixture.loader().applyCpuLoad(0.01, 100); fixture.tester().assertResources("Scaling up cpu since peak resource usage is too high", - 5, 1, 7.1, 12.8, 60.0, + 5, 1, 7.6, 12.8, 60.0, fixture.autoscale()); } @@ -279,14 +279,14 @@ public class AutoscalingTest { fixture.loader().applyCpuLoad(0.25f, 120); var scaledResources = fixture.tester().assertResources("Scaling cpu up", - 3, 1, 4, 16.0, 40.8, + 6, 1, 2, 16.0, 40.8, fixture.autoscale()); fixture.deploy(Capacity.from(scaledResources)); fixture.deactivateRetired(Capacity.from(scaledResources)); fixture.completeLastScaling(); fixture.loader().applyCpuLoad(0.1f, 120); fixture.tester().assertResources("Scaling down since cpu usage has gone down", - 3, 1, 2, 16, 75.0, + 4, 1, 2, 16, 34.0, fixture.autoscale()); } @@ -314,7 +314,7 @@ public class AutoscalingTest { new NodeResources(100, 1000, 1000, 1, DiskSpeed.any)); var capacity = Capacity.from(min, max); ClusterResources scaledResources = fixture.tester().assertResources("Scaling up", - 13, 1, 1.5, 29.1, 87.3, + 14, 1, 1.5, 27.2, 81.5, fixture.autoscale(capacity)); assertEquals("Disk speed from new capacity is used", DiskSpeed.any, scaledResources.nodeResources().diskSpeed()); @@ -415,7 +415,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyCpuLoad(0.5, 240); fixture.tester().assertResources("Scaling cpu up", - 6, 6, 4.5, 7.4, 22.3, + 6, 6, 4.8, 7.4, 22.3, fixture.autoscale()); } @@ -432,7 +432,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyCpuLoad(0.6, 240); fixture.tester().assertResources("Scaling cpu up", - 12, 6, 3.0, 4.2, 27.5, + 12, 6, 3.2, 4.2, 27.5, fixture.autoscale()); } @@ -478,7 +478,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyCpuLoad(1.0, 120); fixture.tester().assertResources("Suggesting above capacity limit", - 5, 1, 10.2, 11.9, 50.5, + 5, 1, 10.9, 11.9, 50.5, fixture.tester().suggest(fixture.applicationId, fixture.clusterSpec.id(), min, min)); } @@ -490,7 +490,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyCpuLoad(1.0, 120); fixture.tester().assertResources("Suggesting above capacity limit", - 13, 1, 4, 8, 100.0, + 7, 1, 8, 16, 200.0, fixture.tester().suggest(fixture.applicationId, fixture.clusterSpec.id(), min, min)); } @@ -538,7 +538,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyLoad(new Load(0.5, 0.8, 0.1, 0, 0), 120); fixture.tester().assertResources("Suggesting resources where disk is 3x memory (this is a content cluster)", - 11, 1, 13.0, 60.0, 179.9, + 11, 1, 13.9, 60.0, 179.9, fixture.tester().suggest(fixture.applicationId, fixture.clusterSpec.id(), min, min)); fixture.tester().assertResources("Autoscaling to resources where disk is 3x memory (this is a content cluster)", 10, 1, 10.0, 66.2, 198.6, @@ -559,7 +559,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyLoad(new Load(0.5, 0.8, 0.1, 0, 0), 120); fixture.tester().assertResources("Suggesting resources where disk is 3x memory (this is a content cluster)", - 13, 1, 36.0, 72.0, 900.0, + 7, 1, 72.0, 144.0, 1800.0, fixture.tester().suggest(fixture.applicationId, fixture.clusterSpec.id(), min, min)); fixture.tester().assertResources("Autoscaling to resources where disk is 3x memory (this is a content cluster)", 10, 1, 16.0, 64, 247.5, @@ -579,7 +579,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyCpuLoad(0.9, 120); fixture.tester().assertResources("Scaling up to 2 nodes, scaling memory and disk down at the same time", - 8, 4, 7.4, 41.5, 124.6, + 8, 4, 7.9, 41.5, 124.6, fixture.autoscale()); } @@ -597,7 +597,7 @@ public class AutoscalingTest { fixture.setScalingDuration(Duration.ofHours(6)); fixture.loader().applyCpuLoad(0.9, 120); fixture.tester().assertResources("Scaling up to 2 nodes, scaling memory and disk down at the same time", - 7, 7, 9.4, 78.6, 235.8, + 8, 8, 8.6, 78.6, 235.8, fixture.autoscale()); } @@ -616,7 +616,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(timePassed.negated()); fixture.loader().addLoadMeasurements(10, t -> t == 0 ? 200.0 : 100.0, t -> 10.0); fixture.tester().assertResources("Changing to 1 group is cheaper", - 7, 1, 2.5, 43.3, 129.8, + 7, 1, 2.7, 43.3, 129.8, fixture.autoscale()); } @@ -653,7 +653,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(1)); fixture.loader().applyMemLoad(1.0, 1000); fixture.tester().assertResources("Increase group size to reduce memory load", - 8, 2, 13.9, 96.3, 288.8, + 8, 2, 14.0, 96.3, 288.8, fixture.autoscale()); } @@ -670,7 +670,7 @@ public class AutoscalingTest { fixture.tester().clock().advance(Duration.ofDays(2)); fixture.loader().applyLoad(new Load(0.16, 0.02, 0.5, 0, 0), 120); fixture.tester().assertResources("Scaling down memory", - 6, 1, 2.1, 4.0, 96.2, + 6, 1, 2.3, 4.0, 96.2, fixture.autoscale()); } @@ -726,16 +726,16 @@ public class AutoscalingTest { fixture.tester.clock().advance(timeAdded.negated()); fixture.loader().addCpuMeasurements(0.25, 200); fixture.tester().assertResources("Scale up since we assume we need 2x cpu for growth when no scaling time data", - 5, 1, 2.6, 11.9, 50.5, + 5, 1, 2.7, 11.9, 50.5, fixture.autoscale()); fixture.setScalingDuration(Duration.ofHours(8)); fixture.tester().clock().advance(Duration.ofDays(2)); timeAdded = fixture.loader().addLoadMeasurements(100, t -> 100.0 + (t < 50 ? t : 100 - t), t -> 0.0); fixture.tester.clock().advance(timeAdded.negated()); - fixture.loader().addCpuMeasurements(0.20, 200); + fixture.loader().addCpuMeasurements(0.15, 200); fixture.tester().assertResources("Scale down since observed growth is slower than scaling time", - 5, 1, 1.6, 11.9, 50.5, + 5, 1, 1.3, 11.9, 50.5, fixture.autoscale()); fixture.setScalingDuration(Duration.ofHours(8)); @@ -746,7 +746,7 @@ public class AutoscalingTest { fixture.tester.clock().advance(timeAdded.negated()); fixture.loader().addCpuMeasurements(0.25, 200); fixture.tester().assertResources("Scale up since observed growth is faster than scaling time", - 5, 1, 2.4, 11.9, 50.5, + 5, 1, 2.6, 11.9, 50.5, fixture.autoscale()); } @@ -763,7 +763,7 @@ public class AutoscalingTest { fixture.tester.clock().advance(timeAdded.negated()); fixture.loader().addCpuMeasurements(0.7, 200); fixture.tester().assertResources("Scale up slightly since observed growth is faster than scaling time, but we are not confident", - 5, 1, 2.2, 11.9, 50.5, + 5, 1, 2.4, 11.9, 50.5, fixture.autoscale()); } @@ -782,7 +782,7 @@ public class AutoscalingTest { fixture.tester.clock().advance(timeAdded.negated()); fixture.loader().addCpuMeasurements(0.4, 200); fixture.tester.assertResources("Query and write load is equal -> scale up somewhat", - 5, 1, 2.9, 11.9, 50.5, + 5, 1, 3.1, 11.9, 50.5, fixture.autoscale()); fixture.tester().clock().advance(Duration.ofDays(2)); @@ -791,7 +791,7 @@ public class AutoscalingTest { fixture.loader().addCpuMeasurements(0.4, 200); // TODO: Ackhually, we scale up less here - why? fixture.tester().assertResources("Query load is 4x write load -> scale up more", - 5, 1, 2.2, 11.9, 50.5, + 5, 1, 2.4, 11.9, 50.5, fixture.autoscale()); fixture.tester().clock().advance(Duration.ofDays(2)); @@ -807,7 +807,7 @@ public class AutoscalingTest { fixture.tester.clock().advance(timeAdded.negated()); fixture.loader().addCpuMeasurements(0.4, 200); fixture.tester().assertResources("Query only -> larger", - 5, 1, 3.5, 11.9, 50.5, + 5, 1, 3.8, 11.9, 50.5, fixture.autoscale()); fixture.tester().clock().advance(Duration.ofDays(2)); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java index dfec423d77b..6c2a5565c4a 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java @@ -33,7 +33,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.1, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 3.4, 7.2, 28.8, + 8, 1, 3.6, 7.2, 28.8, fixture.autoscale()); // Higher query rate @@ -41,7 +41,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(200, 1.1, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 6.8, 7.2, 28.8, + 8, 1, 7.1, 7.2, 28.8, fixture.autoscale()); // Higher headroom @@ -49,7 +49,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.3, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 4.0, 7.2, 28.8, + 8, 1, 4.2, 7.2, 28.8, fixture.autoscale()); // Higher per query cost @@ -57,7 +57,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.1, 0.45)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 5.1, 7.2, 28.8, + 8, 1, 5.4, 7.2, 28.8, fixture.autoscale()); // Bcp elsewhere is 0 - use local only @@ -65,7 +65,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(0, 1.1, 0.45)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling using local info", - 8, 1, 1, 7.2, 28.8, + 8, 1, 1.1, 7.2, 28.8, fixture.autoscale()); } @@ -86,7 +86,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.1, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 3, 3, 11.7, 41.8, 189.3, + 3, 3, 12.3, 41.8, 189.3, fixture.autoscale()); // Higher query rate @@ -94,7 +94,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(200, 1.1, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 3, 3, 23.1, 41.8, 189.3, + 3, 3, 24.4, 41.8, 189.3, fixture.autoscale()); // Higher headroom @@ -102,7 +102,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.3, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 3, 3, 13.8, 41.8, 189.3, + 3, 3, 14.5, 41.8, 189.3, fixture.autoscale()); // Higher per query cost @@ -110,7 +110,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.1, 0.45)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 3, 3, 17.4, 41.8, 189.3, + 3, 3, 18.4, 41.8, 189.3, fixture.autoscale()); } @@ -128,7 +128,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.1, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 4, 1, 8.0, 16.0, 40.8, + 8, 1, 4.0, 16.0, 40.8, fixture.autoscale()); // Higher query rate (mem and disk changes are due to being assigned larger hosts where we get less overhead share @@ -136,7 +136,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(200, 1.1, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 7, 1, 8.0, 16.0, 40.8, + 8, 1, 8.0, 16.0, 40.8, fixture.autoscale()); // Higher headroom @@ -144,7 +144,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.3, 0.3)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 4.0, 16.0, 40.8, + 5, 1, 8.0, 16.0, 40.8, fixture.autoscale()); // Higher per query cost @@ -152,7 +152,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(100, 1.1, 0.45)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 10, 1, 4.0, 16.0, 40.8, + 6, 1, 8.0, 16.0, 40.8, fixture.autoscale()); } @@ -187,7 +187,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.store(new BcpGroupInfo(200, 1.3, 0.45)); fixture.loader().addCpuMeasurements(0.7f, 10); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 11.9, 7.2, 28.8, + 8, 1, 12.6, 7.2, 28.8, fixture.autoscale()); // Some local traffic @@ -197,7 +197,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration1.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 10.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 6.8, 7.2, 28.8, + 8, 1, 7.3, 7.2, 28.8, fixture.autoscale()); // Enough local traffic to get half the votes @@ -207,7 +207,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration2.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 50.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 3.0, 7.2, 28.8, + 8, 1, 3.2, 7.2, 28.8, fixture.autoscale()); // Mostly local @@ -217,7 +217,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration3.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 90.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 2.2, 7.2, 28.8, + 8, 1, 2.3, 7.2, 28.8, fixture.autoscale()); // Local only @@ -227,7 +227,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration4.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 100.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 2.1, 7.2, 28.8, + 8, 1, 2.2, 7.2, 28.8, fixture.autoscale()); // No group info, should be the same as the above @@ -237,7 +237,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration5.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 100.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 2.1, 7.2, 28.8, + 8, 1, 2.2, 7.2, 28.8, fixture.autoscale()); // 40 query rate, no group info (for reference to the below) @@ -247,7 +247,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration6.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 40.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 1.5, 7.2, 28.8, + 8, 1, 1.6, 7.2, 28.8, fixture.autoscale()); // Local query rate is too low but global is even lower so disregard it, giving the same as above @@ -257,7 +257,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration7.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 40.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 1.5, 7.2, 28.8, + 8, 1, 1.6, 7.2, 28.8, fixture.autoscale()); // Local query rate is too low to be fully confident, and so is global but as it is slightly larger, incorporate it slightly @@ -267,7 +267,7 @@ public class AutoscalingUsingBcpGroupInfoTest { fixture.tester().clock().advance(duration8.negated()); fixture.loader().addQueryRateMeasurements(10, __ -> 40.0); fixture.tester().assertResources("Scaling up cpu using bcp group cpu info", - 8, 1, 1.8, 7.2, 28.8, + 8, 1, 1.9, 7.2, 28.8, fixture.autoscale()); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModelTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModelTest.java index 8318ec65f05..cf450ca9a09 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModelTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModelTest.java @@ -43,17 +43,17 @@ public class ClusterModelTest { // No current traffic share: Ideal load is low but capped var model1 = clusterModel(new Status(0.0, 1.0), t -> t == 0 ? 10000.0 : 100.0, t -> 0.0); - assertEquals(0.32653061224489793, model1.idealLoad().cpu(), delta); + assertEquals(0.30612, model1.idealLoad().cpu(), delta); // Almost no current traffic share: Ideal load is low but capped var model2 = clusterModel(new Status(0.0001, 1.0), t -> t == 0 ? 10000.0 : 100.0, t -> 0.0); - assertEquals(0.32653061224489793, model2.idealLoad().cpu(), delta); + assertEquals(0.30612, model2.idealLoad().cpu(), delta); // Almost no traffic: Headroom impact is reduced due to uncertainty var model3 = clusterModel(new Status(0.0001, 1.0), t -> t == 0 ? 10000.0 : 1.0, t -> 0.0); - assertEquals(0.6465952717720751, model3.idealLoad().cpu(), delta); + assertEquals(0.606183, model3.idealLoad().cpu(), delta); } @Test @@ -61,22 +61,22 @@ public class ClusterModelTest { // No traffic data: Ideal load assumes 2 regions var model1 = clusterModel(new Status(0.0, 0.0), t -> t == 0 ? 10000.0 : 100.0, t -> 0.0); - assertEquals(0.16326530612244897, model1.idealLoad().cpu(), delta); + assertEquals(0.15306, model1.idealLoad().cpu(), delta); // No traffic: Ideal load is higher since we now know there is only one zone var model2 = clusterModel(new Status(0.0, 1.0), t -> t == 0 ? 10000.0 : 100.0, t -> 0.0); - assertEquals(0.32653061224489793, model2.idealLoad().cpu(), delta); + assertEquals(0.30612, model2.idealLoad().cpu(), delta); // Almost no current traffic: Similar number as above var model3 = clusterModel(new Status(0.0001, 1.0), t -> t == 0 ? 10000.0 : 100.0, t -> 0.0); - assertEquals(0.32653061224489793, model3.idealLoad().cpu(), delta); + assertEquals(0.30612, model3.idealLoad().cpu(), delta); // Low query rate: Impact of growth headroom is reduced due to uncertainty var model4 = clusterModel(new Status(0.0001, 1.0), t -> t == 0 ? 100.0 : 1.0, t -> 0.0); - assertEquals(0.6465952717720751, model4.idealLoad().cpu(), delta); + assertEquals(0.60618, model4.idealLoad().cpu(), delta); } private ClusterModel clusterModelWithNoData() { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java index 51297a88cad..c53a4d88c01 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java @@ -73,15 +73,15 @@ public class ScalingSuggestionsMaintainerTest { new TestMetric()); maintainer.maintain(); - assertEquals("8 nodes with [vcpu: 3.2, memory: 4.5 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", + assertEquals("8 nodes with [vcpu: 3.3, memory: 4.5 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", suggestionOf(app1, cluster1, tester).resources().get().toString()); - assertEquals("7 nodes with [vcpu: 4.1, memory: 5.3 Gb, disk: 16.5 Gb, bandwidth: 0.1 Gbps, architecture: any]", + assertEquals("7 nodes with [vcpu: 4.4, memory: 5.3 Gb, disk: 16.5 Gb, bandwidth: 0.1 Gbps, architecture: any]", suggestionOf(app2, cluster2, tester).resources().get().toString()); // Secondary suggestions - assertEquals("7 nodes with [vcpu: 3.7, memory: 4.5 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", + assertEquals("9 nodes with [vcpu: 2.9, memory: 4.5 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", suggestionsOf(app1, cluster1, tester).get(1).resources().get().toString()); - assertEquals("8 nodes with [vcpu: 3.6, memory: 4.7 Gb, disk: 14.2 Gb, bandwidth: 0.1 Gbps, architecture: any]", + assertEquals("8 nodes with [vcpu: 3.8, memory: 4.7 Gb, disk: 14.2 Gb, bandwidth: 0.1 Gbps, architecture: any]", suggestionsOf(app2, cluster2, tester).get(1).resources().get().toString()); // Utilization goes way down @@ -89,14 +89,14 @@ public class ScalingSuggestionsMaintainerTest { addMeasurements(0.10f, 0.10f, 0.10f, 0, 500, app1, tester.nodeRepository()); maintainer.maintain(); assertEquals("Suggestion stays at the peak value observed", - "8 nodes with [vcpu: 3.2, memory: 4.5 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", + "8 nodes with [vcpu: 3.3, memory: 4.5 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", suggestionOf(app1, cluster1, tester).resources().get().toString()); // Utilization is still way down and a week has passed tester.clock().advance(Duration.ofDays(7)); addMeasurements(0.10f, 0.10f, 0.10f, 0, 500, app1, tester.nodeRepository()); maintainer.maintain(); assertEquals("Peak suggestion has been outdated", - "3 nodes with [vcpu: 1.2, memory: 4.0 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", + "3 nodes with [vcpu: 1.3, memory: 4.0 Gb, disk: 10.0 Gb, bandwidth: 0.1 Gbps, architecture: any]", suggestionOf(app1, cluster1, tester).resources().get().toString()); assertTrue(shouldSuggest(app1, cluster1, tester)); |