diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-12-02 11:52:35 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-12-02 11:52:35 +0100 |
commit | 7c83ce0f77283f68954b78a5d8d5b4b9f3f98c46 (patch) | |
tree | 9cf64dd18e79d8500f7a8672482030e56e1a965d /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java | |
parent | 07bee1b22ee0af18ad0456e32dcff765fcdbee4c (diff) |
Use remote storage with very small disks
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java index 6e85e2f9649..1406aaecb71 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java @@ -164,18 +164,21 @@ public class AllocatableClusterResources { if (! exclusive) { // We decide resources: Add overhead to what we'll request (advertised) to make sure real becomes (at least) cappedNodeResources var advertisedResources = nodeRepository.resourcesCalculator().realToRequest(wantedResources.nodeResources(), exclusive); - System.out.println("realToRequest: " + wantedResources.nodeResources() + " -> " + advertisedResources); advertisedResources = systemLimits.enlargeToLegal(advertisedResources, clusterSpec, exclusive); // Ask for something legal advertisedResources = applicationLimits.cap(advertisedResources); // Overrides other conditions, even if it will then fail var realResources = nodeRepository.resourcesCalculator().requestToReal(advertisedResources, exclusive); // What we'll really get - System.out.println("requestToReal: " + advertisedResources + " -> " + realResources); + if ( ! systemLimits.isWithinRealLimits(realResources, clusterSpec) && advertisedResources.storageType() == NodeResources.StorageType.any) { + // Since local disk resreves some of the storage, try to constrain to remote disk + advertisedResources = advertisedResources.with(NodeResources.StorageType.remote); + realResources = nodeRepository.resourcesCalculator().requestToReal(advertisedResources, exclusive); + } if ( ! systemLimits.isWithinRealLimits(realResources, clusterSpec)) return Optional.empty(); if (anySatisfies(realResources, availableRealHostResources)) - return Optional.of(new AllocatableClusterResources(wantedResources.with(realResources), - advertisedResources, - wantedResources, - clusterSpec)); + return Optional.of(new AllocatableClusterResources(wantedResources.with(realResources), + advertisedResources, + wantedResources, + clusterSpec)); else return Optional.empty(); } |