summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java20
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/DefaultThreadpoolProvider.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java21
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java19
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/JettyHttpServer.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java20
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java18
-rwxr-xr-xconfig-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java28
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java7
16 files changed, 49 insertions, 135 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java
index 07b1de3fdad..2b9551c2858 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java
@@ -17,7 +17,6 @@ public class Slobrok extends AbstractService implements StateserverConfig.Produc
private static final long serialVersionUID = 1L;
public final static int BASEPORT = 19099;
- public final boolean useNewLogic;
@Override
public void getConfig(StateserverConfig.Builder builder) {
@@ -32,7 +31,6 @@ public class Slobrok extends AbstractService implements StateserverConfig.Produc
ModelContext.FeatureFlags featureFlags)
{
super(parent, "slobrok." + index);
- this.useNewLogic = featureFlags.newLocationBrokerLogic();
portsMeta.on(0).tag("rpc").tag("admin").tag("status");
portsMeta.on(1).tag("http").tag("state");
setProp("index", index);
@@ -50,10 +48,7 @@ public class Slobrok extends AbstractService implements StateserverConfig.Produc
}
public String getStartupCommand() {
- if (useNewLogic) {
- return "exec $ROOT/sbin/vespa-slobrok -N -p " + getRpcPort() + " -c " + getConfigId();
- }
- return "exec $ROOT/sbin/vespa-slobrok -p " + getRpcPort() + " -c " + getConfigId();
+ return "exec $ROOT/sbin/vespa-slobrok -N -p " + getRpcPort() + " -c " + getConfigId();
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
index c91c4e92486..0638679b817 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
@@ -181,6 +181,8 @@ public class VespaMetricSet {
metrics.add(new Metric("jdisc.deactivated_containers.with_retained_refs.last"));
metrics.add(new Metric("athenz-tenant-cert.expiry.seconds.last"));
+ metrics.add(new Metric("node-certificate.expiry.seconds.last"));
+ metrics.add(new Metric("container-iam-role.expiry.seconds.last"));
metrics.add(new Metric("jdisc.http.request.prematurely_closed.rate"));
addMetric(metrics, "jdisc.http.request.requests_per_connection", List.of("sum", "count", "min", "max", "average"));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
index 9e1407ec93e..1c2da13738f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java
@@ -22,9 +22,6 @@ public class ContainerDocumentApi {
public static final String DOCUMENT_V1_PREFIX = "/document/v1";
- private static final int FALLBACK_MAX_POOL_SIZE = 0; // Use fallback based on actual logical core count on host
- private static final int FALLBACK_CORE_POOL_SIZE = 0; // Use fallback based on actual logical core count on host
-
public ContainerDocumentApi(ContainerCluster<?> cluster, Options options) {
addRestApiHandler(cluster, options);
addFeedHandler(cluster, options);
@@ -102,22 +99,7 @@ public class ContainerDocumentApi {
// User options overrides below configuration
if (hasUserOptions()) return;
-
- builder.maxThreads(maxPoolSize());
- builder.minThreads(minPoolSize());
- builder.queueSize(500);
- }
-
- private int maxPoolSize() {
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu == 0) return FALLBACK_MAX_POOL_SIZE;
- return Math.max(2, (int)Math.ceil(vcpu * 4.0));
- }
-
- private int minPoolSize() {
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu == 0) return FALLBACK_CORE_POOL_SIZE;
- return Math.max(1, (int)Math.ceil(vcpu * 2.0));
+ builder.maxThreads(-4).minThreads(-4).queueSize(500);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index f5b168958c0..d05650b10b5 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -70,7 +70,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
-import java.util.OptionalDouble;
import java.util.Set;
/**
@@ -652,12 +651,4 @@ public abstract class ContainerCluster<CONTAINER extends Container>
public boolean getDeferChangesUntilRestart() { return deferChangesUntilRestart; }
- /** Effective vcpu for the containers in cluster. Use this value as scale factor for performance/resource tuning. **/
- public OptionalDouble vcpu() {
- return getContainers().stream()
- .filter(c -> c.getHostResource() != null && c.getHostResource().realResources() != null)
- .mapToDouble(c -> c.getHostResource().realResources().vcpu())
- .max(); // Use highest vcpu as scale factor
- }
-
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/DefaultThreadpoolProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/DefaultThreadpoolProvider.java
index 4d665b0bb58..e74eac09558 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/DefaultThreadpoolProvider.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/DefaultThreadpoolProvider.java
@@ -46,13 +46,7 @@ class DefaultThreadpoolProvider extends SimpleComponent implements ThreadpoolCon
return;
}
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu == 0) return;
-
- // Configuration is currently identical to the search handler's threadpool
- int workerThreads = Math.max(8, (int)Math.ceil(vcpu * 2.0));
- builder.maxthreads(workerThreads);
- builder.corePoolSize(workerThreads);
- builder.queueSize((int)(workerThreads * 40.0));
+ if (!cluster.isHostedVespa()) return;
+ builder.corePoolSize(-2).maxthreads(-2).queueSize(-40);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java
index fc41da43479..33e712feeb1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java
@@ -9,8 +9,6 @@ import com.yahoo.osgi.provider.model.ComponentModel;
import com.yahoo.vespa.model.container.ApplicationContainerCluster;
import com.yahoo.vespa.model.container.ContainerCluster;
-import java.util.OptionalInt;
-
/**
* @author Tony Vaagenes
* @author gjoranv
@@ -32,11 +30,10 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
public AccessLogComponent(ContainerCluster<?> cluster, AccessLogType logType, CompressionType compressionType, String clusterName, boolean isHostedVespa)
{
- this(cluster, logType, compressionType,
+ this(logType, compressionType,
String.format("logs/vespa/qrs/%s.%s.%s", capitalize(logType.name()), clusterName, "%Y%m%d%H%M%S"),
null, null, isHostedVespa,
- capitalize(logType.name()) + "." + clusterName,
- queueSize(cluster).orElse(-1),
+ capitalize(logType.name()) + "." + clusterName, -1,
((cluster instanceof ApplicationContainerCluster) ? 4*1024*1024 : null));
}
@@ -44,8 +41,7 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
- public AccessLogComponent(ContainerCluster<?> cluster,
- AccessLogType logType,
+ public AccessLogComponent(AccessLogType logType,
CompressionType compressionType,
String fileNamePattern,
String rotationInterval,
@@ -69,13 +65,6 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
throw new RuntimeException("File name pattern required when configuring access log.");
}
- private static OptionalInt queueSize(ContainerCluster<?> cluster) {
- if (cluster == null) return OptionalInt.empty();
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu <= 0) return OptionalInt.empty();
- return OptionalInt.of((int) Math.max(4096, Math.ceil(vcpu * 256.0)));
- }
-
private static String accessLogClass(AccessLogType logType) {
switch (logType) {
case queryAccessLog:
@@ -105,9 +94,7 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
} else if (isHostedVespa) {
builder.compressOnRotation(true);
}
- if (queueSize >= 0) {
- builder.queueSize(queueSize);
- }
+ builder.queueSize(queueSize);
if (bufferSize != null) {
builder.bufferSize(bufferSize);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java
index 0b51cd163a2..4afac252085 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java
@@ -6,38 +6,25 @@ import com.yahoo.container.logging.ConnectionLog;
import com.yahoo.container.logging.ConnectionLogConfig;
import com.yahoo.vespa.model.container.ContainerCluster;
-import java.util.OptionalInt;
-
public class ConnectionLogComponent extends SimpleComponent implements ConnectionLogConfig.Producer {
private final String logDirectoryName;
private final String clusterName;
- private final int queueSize;
public ConnectionLogComponent(ContainerCluster<?> cluster, Class<? extends ConnectionLog> cls, String logDirectoryName) {
- this(cluster, cls, logDirectoryName, cluster.getName());
+ this(cls, logDirectoryName, cluster.getName());
}
- public ConnectionLogComponent(ContainerCluster<?> cluster, Class<? extends ConnectionLog> cls, String logDirectoryName, String clusterName) {
+ public ConnectionLogComponent(Class<? extends ConnectionLog> cls, String logDirectoryName, String clusterName) {
super(cls.getName());
this.logDirectoryName = logDirectoryName;
this.clusterName = clusterName;
- this.queueSize = queueSize(cluster).orElse(-1);
- }
-
- private static OptionalInt queueSize(ContainerCluster<?> cluster) {
- if (cluster == null) return OptionalInt.empty();
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu <= 0) return OptionalInt.empty();
- return OptionalInt.of((int) Math.max(4096, Math.ceil(vcpu * 512.0)));
}
@Override
public void getConfig(ConnectionLogConfig.Builder builder) {
builder.cluster(clusterName);
builder.logDirectoryName(logDirectoryName);
- if (queueSize >= 0) {
- builder.queueSize(queueSize);
- }
+ builder.queueSize(-1);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/JettyHttpServer.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/JettyHttpServer.java
index d13709114bf..a2181f317a6 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/JettyHttpServer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/JettyHttpServer.java
@@ -70,18 +70,11 @@ public class JettyHttpServer extends SimpleComponent implements ServerConfig.Pro
private void configureJettyThreadpool(ServerConfig.Builder builder) {
if (cluster == null) return;
if (cluster instanceof ApplicationContainerCluster) {
- configureApplicationClusterJettyThreadPool(builder);
+ if (isHostedVespa) builder.minWorkerThreads(-1).maxWorkerThreads(-1);
} else {
builder.minWorkerThreads(4).maxWorkerThreads(4);
}
}
- private void configureApplicationClusterJettyThreadPool(ServerConfig.Builder builder) {
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu > 0) {
- int threads = 16 + (int) Math.ceil(vcpu);
- builder.minWorkerThreads(threads).maxWorkerThreads(threads);
- }
- }
static ComponentModel providerComponentModel(String parentId, String className) {
final ComponentSpecification classNameSpec = new ComponentSpecification(
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java
index b25463b8547..aab417db1e2 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java
@@ -25,16 +25,17 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
private final boolean enforceClientAuth;
private final boolean enforceHandshakeClientAuth;
private final Collection<String> tlsCiphersOverride;
+ private final Duration maxConnectionLife;
/**
* Create connector factory that uses a certificate provided by the config-model / configserver and default hosted Vespa truststore.
*/
public static HostedSslConnectorFactory withProvidedCertificate(
String serverName, EndpointCertificateSecrets endpointCertificateSecrets, boolean enforceHandshakeClientAuth,
- Collection<String> tlsCiphersOverride) {
+ Collection<String> tlsCiphersOverride, Duration maxConnectionLife) {
ConfiguredDirectSslProvider sslProvider = createConfiguredDirectSslProvider(
serverName, endpointCertificateSecrets, DEFAULT_HOSTED_TRUSTSTORE, /*tlsCaCertificates*/null, enforceHandshakeClientAuth);
- return new HostedSslConnectorFactory(sslProvider, false, enforceHandshakeClientAuth, tlsCiphersOverride);
+ return new HostedSslConnectorFactory(sslProvider, false, enforceHandshakeClientAuth, tlsCiphersOverride, maxConnectionLife);
}
/**
@@ -42,25 +43,28 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
*/
public static HostedSslConnectorFactory withProvidedCertificateAndTruststore(
String serverName, EndpointCertificateSecrets endpointCertificateSecrets, String tlsCaCertificates,
- Collection<String> tlsCiphersOverride) {
+ Collection<String> tlsCiphersOverride, Duration maxConnectionLife) {
ConfiguredDirectSslProvider sslProvider = createConfiguredDirectSslProvider(
serverName, endpointCertificateSecrets, /*tlsCaCertificatesPath*/null, tlsCaCertificates, false);
- return new HostedSslConnectorFactory(sslProvider, true, false, tlsCiphersOverride);
+ return new HostedSslConnectorFactory(sslProvider, true, false, tlsCiphersOverride, maxConnectionLife);
}
/**
* Create connector factory that uses the default certificate and truststore provided by Vespa (through Vespa-global TLS configuration).
*/
- public static HostedSslConnectorFactory withDefaultCertificateAndTruststore(String serverName, Collection<String> tlsCiphersOverride) {
- return new HostedSslConnectorFactory(new DefaultSslProvider(serverName), true, false, tlsCiphersOverride);
+ public static HostedSslConnectorFactory withDefaultCertificateAndTruststore(
+ String serverName, Collection<String> tlsCiphersOverride, Duration maxConnectionLife) {
+ return new HostedSslConnectorFactory(new DefaultSslProvider(serverName), true, false, tlsCiphersOverride, maxConnectionLife);
}
private HostedSslConnectorFactory(SslProvider sslProvider, boolean enforceClientAuth,
- boolean enforceHandshakeClientAuth, Collection<String> tlsCiphersOverride) {
+ boolean enforceHandshakeClientAuth, Collection<String> tlsCiphersOverride,
+ Duration maxConnectionLife) {
super(new Builder("tls4443", 4443).sslProvider(sslProvider));
this.enforceClientAuth = enforceClientAuth;
this.enforceHandshakeClientAuth = enforceHandshakeClientAuth;
this.tlsCiphersOverride = tlsCiphersOverride;
+ this.maxConnectionLife = maxConnectionLife;
}
private static ConfiguredDirectSslProvider createConfiguredDirectSslProvider(
@@ -96,6 +100,6 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
connectorBuilder
.proxyProtocol(new ConnectorConfig.ProxyProtocol.Builder().enabled(true).mixedMode(true))
.idleTimeout(Duration.ofSeconds(30).toSeconds())
- .maxConnectionLife(Duration.ofMinutes(10).toSeconds());
+ .maxConnectionLife(maxConnectionLife.toSeconds());
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
index d7812e9b4ff..62f04edf0ae 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
@@ -55,7 +55,6 @@ public class AccessLogBuilder {
@Override
protected AccessLogComponent doBuild(DeployState deployState, AbstractConfigProducer<?> ancestor, Element spec) {
return new AccessLogComponent(
- (ContainerCluster<?>) ancestor,
accessLogType,
compressionType(spec, isHostedVespa),
fileNamePattern(spec),
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java
index a1f52cca9fd..75f11020c15 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java
@@ -6,7 +6,6 @@ import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.container.logging.FileConnectionLog;
import com.yahoo.vespa.model.container.ApplicationContainerCluster;
import com.yahoo.vespa.model.container.ContainerModel;
-import com.yahoo.vespa.model.container.ContainerModelEvaluation;
import com.yahoo.vespa.model.container.component.AccessLogComponent;
import com.yahoo.vespa.model.container.component.ConnectionLogComponent;
import com.yahoo.vespa.model.container.configserver.ConfigserverCluster;
@@ -48,7 +47,7 @@ public class ConfigServerContainerModelBuilder extends ContainerModelBuilder {
if (isHosted()){
cluster.addComponent(
new AccessLogComponent(
- cluster, AccessLogComponent.AccessLogType.jsonAccessLog, AccessLogComponent.CompressionType.ZSTD,
+ AccessLogComponent.AccessLogType.jsonAccessLog, AccessLogComponent.CompressionType.ZSTD,
"logs/vespa/configserver/access-json.log.%Y%m%d%H%M%S", null, true, true, "access-json.log", 1024,256*1024));
cluster.addComponent(new ConnectionLogComponent(cluster, FileConnectionLog.class, "configserver"));
} else {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index c62dee68b2d..2622a9e50b7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -92,6 +92,7 @@ import org.w3c.dom.Node;
import java.net.URI;
import java.security.cert.X509Certificate;
+import java.time.Duration;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -436,6 +437,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// If the deployment contains certificate/private key reference, setup TLS port
HostedSslConnectorFactory connectorFactory;
Collection<String> tlsCiphersOverride = deployState.getProperties().tlsCiphersOverride();
+ Duration maxConnectionLife = Duration.ofSeconds(deployState.featureFlags().maxConnectionLifeInHosted());
if (deployState.endpointCertificateSecrets().isPresent()) {
boolean authorizeClient = deployState.zone().system().isPublic();
if (authorizeClient && deployState.tlsClientAuthority().isEmpty()) {
@@ -450,11 +452,11 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
connectorFactory = authorizeClient
? HostedSslConnectorFactory.withProvidedCertificateAndTruststore(
- serverName, endpointCertificateSecrets, getTlsClientAuthorities(deployState), tlsCiphersOverride)
+ serverName, endpointCertificateSecrets, getTlsClientAuthorities(deployState), tlsCiphersOverride, maxConnectionLife)
: HostedSslConnectorFactory.withProvidedCertificate(
- serverName, endpointCertificateSecrets, enforceHandshakeClientAuth, tlsCiphersOverride);
+ serverName, endpointCertificateSecrets, enforceHandshakeClientAuth, tlsCiphersOverride, maxConnectionLife);
} else {
- connectorFactory = HostedSslConnectorFactory.withDefaultCertificateAndTruststore(serverName, tlsCiphersOverride);
+ connectorFactory = HostedSslConnectorFactory.withDefaultCertificateAndTruststore(serverName, tlsCiphersOverride, maxConnectionLife);
}
cluster.getHttp().getAccessControl().ifPresent(accessControl -> accessControl.configureHostedConnector(connectorFactory));
server.addConnector(connectorFactory);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java
index 95b333f4e52..d3001bd9100 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java
@@ -48,22 +48,10 @@ class SearchHandler extends ProcessingHandler<SearchChains> {
// User options overrides below configuration
if (hasUserOptions()) return;
-
- double vcpu = cluster.vcpu().orElse(0);
- if (vcpu == 0) {
- builder.maxThreads(500);
- builder.minThreads(500);
- builder.queueSize(0);
+ if (cluster.isHostedVespa()) {
+ builder.maxThreads(-2).minThreads(-2).queueSize(-40);
} else {
- // Controls max number of concurrent requests per container
- int workerThreads = Math.max(8, (int)Math.ceil(vcpu * 2.0));
- builder.maxThreads(workerThreads);
- builder.minThreads(workerThreads);
-
- // This controls your burst handling capability.
- // 0 => No extra burst handling beyond you max concurrent requests (maxthreads).
- // N => N times max concurrent requests as a buffer for handling bursts
- builder.queueSize((int)(workerThreads * 40.0));
+ builder.maxThreads(500).minThreads(500).queueSize(0);
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
index a66ea736a5b..a2887ae76c1 100755
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
@@ -277,45 +277,37 @@ public class ContainerClusterTest {
}
@Test
- public void config_for_default_threadpool_provider_scales_with_node_resources() {
- HostProvisionerWithCustomRealResource hostProvisioner = new HostProvisionerWithCustomRealResource();
+ public void config_for_default_threadpool_provider_scales_with_node_resources_in_hosted() {
MockRoot root = new MockRoot(
"foo",
new DeployState.Builder()
+ .properties(new TestProperties().setHostedVespa(true))
.applicationPackage(new MockApplicationPackage.Builder().build())
- .modelHostProvisioner(hostProvisioner)
.build());
ApplicationContainerCluster cluster = createContainerCluster(root, false);
- HostResource hostResource = new HostResource(
- new Host(null, "host-c1"),
- hostProvisioner.allocateHost("host-c1"));
- addContainerWithHostResource(root, cluster, "c1", hostResource);
+ addContainer(root, cluster, "c1", "host-c1");
root.freezeModelTopology();
ThreadpoolConfig threadpoolConfig = root.getConfig(ThreadpoolConfig.class, "container0/component/default-threadpool");
- assertEquals(8, threadpoolConfig.maxthreads());
- assertEquals(320, threadpoolConfig.queueSize());
+ assertEquals(-2, threadpoolConfig.maxthreads());
+ assertEquals(-40, threadpoolConfig.queueSize());
}
@Test
- public void jetty_threadpool_scales_with_node_resources() {
- HostProvisionerWithCustomRealResource hostProvisioner = new HostProvisionerWithCustomRealResource(12);
+ public void jetty_threadpool_scales_with_node_resources_in_hosted() {
MockRoot root = new MockRoot(
"foo",
new DeployState.Builder()
+ .properties(new TestProperties().setHostedVespa(true))
.applicationPackage(new MockApplicationPackage.Builder().build())
- .modelHostProvisioner(hostProvisioner)
.build());
ApplicationContainerCluster cluster = createContainerCluster(root, false);
- HostResource hostResource = new HostResource(
- new Host(null, "host-c1"),
- hostProvisioner.allocateHost("host-c1"));
- addContainerWithHostResource(root, cluster, "c1", hostResource);
+ addContainer(root, cluster, "c1", "host-c1");
root.freezeModelTopology();
ServerConfig cfg = root.getConfig(ServerConfig.class, "container0/c1/DefaultHttpServer");
- assertEquals(28, cfg.maxWorkerThreads());
- assertEquals(28, cfg.minWorkerThreads());
+ assertEquals(-1, cfg.maxWorkerThreads()); // Scale with cpu count observed by JVM
+ assertEquals(-1, cfg.minWorkerThreads()); // Scale with cpu count observed by JVM
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java
index 80aafdd4ec7..06281c7b57e 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java
@@ -117,7 +117,7 @@ public class AccessLogTest extends ContainerModelBuilderTestBase {
assertNotNull(connectionLogComponent);
ConnectionLogConfig config = root.getConfig(ConnectionLogConfig.class, "default/component/com.yahoo.container.logging.FileConnectionLog");
assertEquals("default", config.cluster());
- assertEquals(10000, config.queueSize());
+ assertEquals(-1, config.queueSize());
assertEquals(256*1024, config.bufferSize());
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java
index 3c733d5109d..0176d5f6ffc 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerDocumentApiBuilderTest.java
@@ -6,7 +6,6 @@ import com.yahoo.config.model.test.MockApplicationPackage;
import com.yahoo.config.model.test.MockRoot;
import com.yahoo.container.handler.threadpool.ContainerThreadpoolConfig;
import com.yahoo.vespa.model.container.ContainerCluster;
-import com.yahoo.vespa.model.container.HostProvisionerWithCustomRealResource;
import com.yahoo.vespa.model.container.component.Handler;
import com.yahoo.vespa.model.container.component.SystemBindingPattern;
import com.yahoo.vespa.model.container.component.UserBindingPattern;
@@ -98,7 +97,7 @@ public class ContainerDocumentApiBuilderTest extends ContainerModelBuilderTestBa
" <document-api />",
nodesXml,
"</container>");
- root = new MockRoot("root", new MockApplicationPackage.Builder().build(), new HostProvisionerWithCustomRealResource());
+ root = new MockRoot("root", new MockApplicationPackage.Builder().build());
createModel(root, elem);
Map<String, Handler<?>> handlers = getHandlers("cluster1");
Handler<?> feedApiHandler = handlers.get("com.yahoo.vespa.http.server.FeedHandler");
@@ -107,8 +106,8 @@ public class ContainerDocumentApiBuilderTest extends ContainerModelBuilderTestBa
ContainerThreadpoolConfig config = root.getConfig(
ContainerThreadpoolConfig.class, "cluster1/component/com.yahoo.vespa.http.server.FeedHandler/threadpool@feedapi-handler");
- assertEquals(16, config.maxThreads());
- assertEquals(8, config.minThreads());
+ assertEquals(-4, config.maxThreads());
+ assertEquals(-4, config.minThreads());
}
@Test