summaryrefslogtreecommitdiffstats
path: root/config-provisioning/src
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-11-05 23:47:18 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2019-11-05 23:47:18 +0100
commit99defb946229477e4929682ba5f8701c77a2aa77 (patch)
tree06ce30103f027d72858b3cfdf0faf5256d68271a /config-provisioning/src
parent127daf91cb05c906e2d8024a8606506fb913f0fa (diff)
Make it possible specify a cpu speedup factor for a flavor
This allows us to model the speed difference between different cpu generations.
Diffstat (limited to 'config-provisioning/src')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java24
-rw-r--r--config-provisioning/src/main/resources/configdefinitions/flavors.def4
2 files changed, 17 insertions, 11 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
index bc1f7fbf83b..9e6e2c3bb67 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
@@ -26,19 +26,21 @@ public class Flavor {
private final Optional<FlavorOverrides> flavorOverrides;
+ private static final double coreSpeedupRolloutFactor = 1.0/3.0; // TODO: Increase to 2/3 (then 1) on later releases
+
/** Creates a *host* flavor from configuration */
public Flavor(FlavorsConfig.Flavor flavorConfig) {
- this(
- flavorConfig.name(),
- new NodeResources(flavorConfig.minCpuCores(),
- flavorConfig.minMainMemoryAvailableGb(),
- flavorConfig.minDiskAvailableGb(),
- flavorConfig.bandwidth() / 1000,
- flavorConfig.fastDisk() ? NodeResources.DiskSpeed.fast : NodeResources.DiskSpeed.slow),
- Optional.empty(),
- Type.valueOf(flavorConfig.environment()),
- true,
- flavorConfig.cost());
+ this(flavorConfig.name(),
+ new NodeResources(flavorConfig.minCpuCores() *
+ (1 + (flavorConfig.cpuCoreSpeedup() - 1) * coreSpeedupRolloutFactor),
+ flavorConfig.minMainMemoryAvailableGb(),
+ flavorConfig.minDiskAvailableGb(),
+ flavorConfig.bandwidth() / 1000,
+ flavorConfig.fastDisk() ? NodeResources.DiskSpeed.fast : NodeResources.DiskSpeed.slow),
+ Optional.empty(),
+ Type.valueOf(flavorConfig.environment()),
+ true,
+ flavorConfig.cost());
}
/** Creates a *node* flavor from a node resources spec */
diff --git a/config-provisioning/src/main/resources/configdefinitions/flavors.def b/config-provisioning/src/main/resources/configdefinitions/flavors.def
index 59b6c852b0e..a33f141c91b 100644
--- a/config-provisioning/src/main/resources/configdefinitions/flavors.def
+++ b/config-provisioning/src/main/resources/configdefinitions/flavors.def
@@ -17,6 +17,10 @@ flavor[].environment string default="undefined"
# The minimum number of CPU cores available.
flavor[].minCpuCores double default=0.0
+# The speedup factor per cpu core compared to an historical baseline for a particular cpu generation
+# The vcpu resources available on the node will be minCpuCores * cpuCoreSpeedup
+flavor[].cpuCoreSpeedup double default=1.0
+
# The minimum amount of main memory available.
flavor[].minMainMemoryAvailableGb double default=0.0