diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2019-01-15 14:09:25 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2019-01-15 14:09:25 +0100 |
commit | 56b28e4c7dfb0d53d4a2f73c95f9936d9fbe7e52 (patch) | |
tree | 0765fa51da6c6e3c0ed1deda09eb59d1e346a449 | |
parent | df60882b4f7d5d4ec7fc09872ce92578fb73eec0 (diff) |
Use flags as multiplier of allocated CPU
3 files changed, 4 insertions, 3 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 9a4f1faed03..af85c2db3c2 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -53,7 +53,8 @@ public class Flags { public static final UnboundDoubleFlag CONTAINER_CPU_CAP = defineDoubleFlag( "container-cpu-cap", 0, - "Hard limit on how many CPUs a container may use", + "Hard limit on how many CPUs a container may use. This value is multiplied by CPU allocated to node, so " + + "to cap CPU at 200%, set this to 2, etc.", "Takes effect on next node agent tick. Change is orchestrated, but does NOT require container restart", HOSTNAME, APPLICATION_ID); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index 1035895d411..dff86ad491a 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -362,7 +362,7 @@ public class NodeAgentImpl implements NodeAgent { .map(NodeSpec.Owner::asApplicationId) .map(appId -> containerCpuCap.with(FetchVector.Dimension.APPLICATION_ID, appId.serializedForm())) .orElse(containerCpuCap) - .value(); + .value() * context.node().getMinCpuCores(); ContainerResources wantedContainerResources = ContainerResources.from( cpuCap, context.node().getMinCpuCores(), context.node().getMinMainMemoryAvailableGb()); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java index d9255daf00b..e8a24fd1e5a 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java @@ -278,7 +278,7 @@ public class NodeAgentImplTest { flagSource.withDoubleFlag(Flags.CONTAINER_CPU_CAP.id(), 2.3); nodeAgent.converge(thirdContext); - inOrder.verify(dockerOperations).updateContainer(eq(thirdContext), eq(ContainerResources.from(2.3, 4, 16))); + inOrder.verify(dockerOperations).updateContainer(eq(thirdContext), eq(ContainerResources.from(9.2, 4, 16))); inOrder.verify(orchestrator).resume(any(String.class)); } |