diff options
author | Jon Bratseth <bratseth@vespa.ai> | 2023-07-05 12:38:15 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@vespa.ai> | 2023-07-05 12:38:15 +0200 |
commit | 820c4b60a03eb6b6f153c59775b60c949b85752c (patch) | |
tree | d331308ee155f3b17b716121fcad8561966be4a0 /config-model | |
parent | 8fc733d22134a4645e6b3bb4cdde524cb251f5ae (diff) |
Move disk limit check to NodeResourceLimits
Diffstat (limited to 'config-model')
3 files changed, 5 insertions, 57 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java index 00a1078b294..098d917c4e0 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java @@ -161,6 +161,11 @@ public class HostSystem extends TreeConfigProducer<Host> { deployLogger.log(level, message); } + @Override + public void logApplicationPackage(Level level, String message) { + deployLogger.logApplicationPackage(level, message); + } + } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java index 5bb73643de5..ea4988f3029 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java @@ -290,28 +290,9 @@ public class NodesSpecification { .loadBalancerSettings(zoneEndpoint) .stateful(stateful) .build(); - logInsufficientDiskResources(clusterId, clusterType, logger); return hostSystem.allocateHosts(cluster, Capacity.from(min, max, groupSize, required, canFail, cloudAccount, info), logger); } - /** Log a message if requested disk may not fit core/heap dumps */ - private void logInsufficientDiskResources(ClusterSpec.Id clusterId, ClusterSpec.Type clusterType, DeployLogger deployLogger) { - NodeResources resources = min.nodeResources(); - if (resources.diskGbIsUnspecified() || resources.memoryGbIsUnspecified()) return; - double minDiskGb = resources.memoryGb() * switch (clusterType) { - case combined, content -> 3; - case container -> 2; - default -> 0; // No constraint on other types - }; - if (resources.diskGb() < minDiskGb) { - // TODO(mpolden): Consider enforcing this on Vespa 9 - deployLogger.logApplicationPackage(Level.WARNING, "Requested disk (" + resources.diskGb() + - "Gb) in " + clusterId + " is not large enough to fit " + - "core/heap dumps. Minimum recommended disk resources " + - "is " + minDiskGb + "Gb"); - } - } - private static Pair<NodeResources, NodeResources> nodeResources(ModelElement nodesElement) { ModelElement resources = nodesElement.child("resources"); if (resources != null) { diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java index b1f47c54d54..c128b9af6e0 100644 --- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java @@ -2577,44 +2577,6 @@ public class ModelProvisioningTest { assertEquals((long) ((128 - memoryOverheadGb) * GB * 0.08), cfg.flush().memory().each().maxmemory()); // from default node flavor tuning } - @Test - public void warn_on_insufficient_disk_resources() { - String services = """ - <?xml version='1.0' encoding='utf-8' ?> - <services> - <container version='1.0' id='c1'> - <nodes count='1'> - <resources vcpu='1' memory='24Gb' disk='40Gb'/> - </nodes> - </container> - <container version='1.0' id='c2'> - <nodes count='1'> - <resources vcpu='1' memory='24Gb' disk='50Gb'/> - </nodes> - </container> - <content version='1.0' id='c3'> - <redundancy>1</redundancy> - <documents> - <document type='type1' mode='index'/> - </documents> - <nodes count='1'> - <resources vcpu='1' memory='24Gb' disk='50Gb'/> - </nodes> - </content> - </services> - """; - VespaModelTester tester = new VespaModelTester(); - tester.addHosts(new NodeResources(1, 24, 50, 1, DiskSpeed.fast), 10); - TestLogger testLogger = new TestLogger(); - VespaModel model = tester.createModel(services, true, new DeployState.Builder().deployLogger(testLogger)); - assertEquals(1, model.getContainerClusters().get("c1").getContainers().size()); - assertEquals(1, model.getContainerClusters().get("c2").getContainers().size()); - assertEquals(1, model.getContentClusters().get("c3").getSearch().getSearchNodes().size()); - assertEquals(List.of(new TestLogger.LogMessage(Level.WARNING, "Requested disk (40.0Gb) in cluster 'c1' is not large enough to fit core/heap dumps. Minimum recommended disk resources is 48.0Gb"), - new TestLogger.LogMessage(Level.WARNING, "Requested disk (50.0Gb) in cluster 'c3' is not large enough to fit core/heap dumps. Minimum recommended disk resources is 72.0Gb")), - testLogger.msgs()); - } - private static ProtonConfig getProtonConfig(VespaModel model, String configId) { ProtonConfig.Builder builder = new ProtonConfig.Builder(); model.getConfig(builder, configId); |