summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2023-07-05 12:38:15 +0200
committerJon Bratseth <bratseth@vespa.ai>2023-07-05 12:38:15 +0200
commit820c4b60a03eb6b6f153c59775b60c949b85752c (patch)
treed331308ee155f3b17b716121fcad8561966be4a0 /config-model
parent8fc733d22134a4645e6b3bb4cdde524cb251f5ae (diff)
Move disk limit check to NodeResourceLimits
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java19
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java38
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);