private void warnIfDistributionKeyRangeIsSuboptimal(String clusterId, StorageGroup rootGroup, DeployState deployState) {
            if (rootGroup == null) {
                return; // Unit testing case
            }
            var aggr = new HighestDistributionKeyAggregator();
            aggr.aggregateNodeStats(rootGroup);
            int warnThreshold = 100; // ... Not scientifically chosen
            if (!deployState.isHosted() && (aggr.highestNodeDistributionKey - aggr.nodeCount) >= warnThreshold) {
                deployState.getDeployLogger().logApplicationPackage(WARNING,
                        ("Content cluster '%s' has %d node(s), but the highest distribution key is %d. " +
                         "Having much higher distribution keys than the number of nodes is not recommended, " +
                         "as it may negatively affect performance. " +
                         "See https://docs.vespa.ai/en/reference/services-content.html#node")
                        .formatted(clusterId, aggr.nodeCount, aggr.highestNodeDistributionKey));
            }
        }
Returns of memory reserved on a host. Memory is reserved for the jvm if the cluster is combined
config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java