diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-10-22 13:36:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-22 13:36:49 +0200 |
commit | 3ed6e4c013e6b6a6290d52dd75b15c67d0299f6d (patch) | |
tree | 927e1985d1ff31c07ebaaef71226f0a95eb47734 /node-repository | |
parent | 001b0d91959381cff71ac1dcf0fd2baff7d023a9 (diff) | |
parent | 5f502286dc936755beea0efa1f48c04bf1943b8b (diff) |
Merge pull request #15000 from vespa-engine/hmusum/update-with-new-thin-pool-sizes
Update with new thin pool sizes
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java index ad892054836..3d5cde35bf6 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java @@ -1,4 +1,4 @@ -// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.config.provision.ClusterSpec; @@ -28,8 +28,8 @@ public class NodeResourceLimits { public void ensureWithinAdvertisedLimits(String type, NodeResources requested, ClusterSpec cluster) { if (requested.isUnspecified()) return; - if (requested.vcpu() < minAdvertisedVcpu(cluster.type())) - illegal(type, "vcpu", "", cluster, requested.vcpu(), minAdvertisedVcpu(cluster.type())); + if (requested.vcpu() < minAdvertisedVcpu()) + illegal(type, "vcpu", "", cluster, requested.vcpu(), minAdvertisedVcpu()); if (requested.memoryGb() < minAdvertisedMemoryGb(cluster.type())) illegal(type, "memoryGb", "Gb", cluster, requested.memoryGb(), minAdvertisedMemoryGb(cluster.type())); if (requested.diskGb() < minAdvertisedDiskGb(requested)) @@ -46,7 +46,7 @@ public class NodeResourceLimits { public boolean isWithinRealLimits(NodeResources realResources, ClusterSpec.Type clusterType) { if (realResources.isUnspecified()) return true; - if (realResources.vcpu() < minRealVcpu(clusterType)) return false; + if (realResources.vcpu() < minRealVcpu()) return false; if (realResources.memoryGb() < minRealMemoryGb(clusterType)) return false; if (realResources.diskGb() < minRealDiskGb()) return false; return true; @@ -55,12 +55,12 @@ public class NodeResourceLimits { public NodeResources enlargeToLegal(NodeResources requested, ClusterSpec.Type clusterType) { if (requested.isUnspecified()) return requested; - return requested.withVcpu(Math.max(minAdvertisedVcpu(clusterType), requested.vcpu())) + return requested.withVcpu(Math.max(minAdvertisedVcpu(), requested.vcpu())) .withMemoryGb(Math.max(minAdvertisedMemoryGb(clusterType), requested.memoryGb())) .withDiskGb(Math.max(minAdvertisedDiskGb(requested), requested.diskGb())); } - private double minAdvertisedVcpu(ClusterSpec.Type clusterType) { + private double minAdvertisedVcpu() { if (zone().environment() == Environment.dev && !zone().getCloud().dynamicProvisioning()) return 0.1; return 0.5; } @@ -72,26 +72,27 @@ public class NodeResourceLimits { } private double minAdvertisedDiskGb(NodeResources requested) { - if (requested.storageType() == NodeResources.StorageType.local && zone().getCloud().dynamicProvisioning()) { + return minRealDiskGb() + getThinPoolSize(requested.storageType()); + } + + // TODO: Calculate thin pool size instead of hardcoding + private long getThinPoolSize(NodeResources.StorageType storageType) { + if (storageType == NodeResources.StorageType.local && zone().getCloud().dynamicProvisioning()) { if (zone().system() == SystemName.Public) - return 10 + minRealDiskGb(); + return 12; else - return 55 + minRealDiskGb(); + return 24; } - return 4 + minRealDiskGb(); + return 4; } - private double minRealVcpu(ClusterSpec.Type clusterType) { - return minAdvertisedVcpu(clusterType); - } + private double minRealVcpu() { return minAdvertisedVcpu(); } private double minRealMemoryGb(ClusterSpec.Type clusterType) { return minAdvertisedMemoryGb(clusterType) - 1.7; } - private double minRealDiskGb() { - return 6; - } + private double minRealDiskGb() { return 6; } private Zone zone() { return nodeRepository.zone(); } |