summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2023-09-28 18:01:50 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2023-09-28 18:27:05 +0200
commit482a15b1c9d1a34d5413ee32833de46977862b50 (patch)
tree6603d2783bbcf6966bcb3c15a0ef7d6cd18e8073 /node-repository
parent7acebdff89df6d340b534911f029d8e43e205447 (diff)
Propagate GPU resources when determining current resources for autoscaling
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableResources.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java19
2 files changed, 20 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableResources.java
index 8069c9c089b..286ec2451f8 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableResources.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableResources.java
@@ -160,7 +160,7 @@ public class AllocatableResources {
for (Node node : nodes) {
sum = sum.add(nodeRepository.resourcesCalculator().realResourcesOf(node, nodeRepository).justNumbers());
}
- return nodes.get(0).allocation().get().requestedResources().justNonNumbers()
+ return nodes.get(0).allocation().get().requestedResources()
.withVcpu(sum.vcpu() / nodes.size())
.withMemoryGb(sum.memoryGb() / nodes.size())
.withDiskGb(sum.diskGb() / nodes.size())
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 c5ee3283a2a..aa8ff1245d7 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
@@ -32,6 +32,25 @@ import static org.junit.Assert.assertTrue;
public class AutoscalingTest {
@Test
+ public void test_autoscaling_with_gpu() {
+ var resources = new NodeResources(8, 32, 225, 0.1, fast, StorageType.local, NodeResources.Architecture.x86_64, new NodeResources.GpuResources(1, 16));
+ var min = new ClusterResources( 8, 1, resources);
+ var now = new ClusterResources(12, 1, resources);
+ var max = new ClusterResources(12, 1, resources);
+ var fixture = DynamicProvisioningTester.fixture()
+ .awsProdSetup(true)
+ .clusterType(ClusterSpec.Type.container)
+ .initialResources(Optional.of(now))
+ .capacity(Capacity.from(min, max))
+ .build();
+ fixture.tester.clock().advance(Duration.ofDays(2));
+ fixture.loader().applyLoad(new Load(0.8f, 0.17, 0.12), 1, true, true, 100);
+ var result = fixture.autoscale();
+ assertTrue(result.resources().isEmpty());
+ assertEquals(Autoscaling.Status.insufficient, result.status());
+ }
+
+ @Test
public void test_autoscaling_nodes_only() {
var resources = new NodeResources(16, 32, 200, 0.1);
var min = new ClusterResources( 8, 1, resources);