diff options
author | Harald Musum <musum@yahooinc.com> | 2024-01-17 21:53:55 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2024-01-17 21:53:55 +0100 |
commit | 823dd86af7eefade5f4b4d380a291ffe90fff3b0 (patch) | |
tree | 7dee67258e7533f93fe39f3d3a304b3182604bc5 /config-model | |
parent | b894173caeb89b8f6850cae5e25641cb2a527e25 (diff) |
Use memory from the node with lowest available memory
Also handle empty container cluster
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidator.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidator.java index 7fccd1c453f..b809f36a436 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/RestartOnDeployForOnnxModelChangesValidator.java @@ -6,6 +6,7 @@ import com.yahoo.config.model.api.ConfigChangeAction; import com.yahoo.config.model.api.OnnxModelCost; import com.yahoo.vespa.model.Host; import com.yahoo.vespa.model.application.validation.Validation.ChangeContext; +import com.yahoo.vespa.model.container.ApplicationContainer; import com.yahoo.vespa.model.container.ApplicationContainerCluster; import java.util.ArrayList; @@ -105,10 +106,13 @@ public class RestartOnDeployForOnnxModelChangesValidator implements ChangeValida private static boolean enoughMemoryToAvoidRestart(ApplicationContainerCluster clusterInCurrentModel, ApplicationContainerCluster cluster, DeployLogger deployLogger) { + List<ApplicationContainer> containers = cluster.getContainers(); + if (containers.isEmpty()) return true; + double currentModelCostInGb = onnxModelCostInGb(clusterInCurrentModel); double nextModelCostInGb = onnxModelCostInGb(cluster); - double totalMemory = cluster.getContainers().get(0).getHostResource().realResources().memoryGb(); + double totalMemory = containers.stream().mapToDouble(c -> c.getHostResource().realResources().memoryGb()).min().orElseThrow(); double memoryUsedByModels = currentModelCostInGb + nextModelCostInGb; double availableMemory = Math.max(0, totalMemory - Host.memoryOverheadGb - memoryUsedByModels); |