summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-10-19 11:15:40 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-10-19 11:15:40 +0200
commit126b668244b0cf9cdd40f15d57a7658d4e9066fa (patch)
treea59727df2a4b380ad2ca2d005a8d00070d116a24 /jdisc_http_service
parent93dab00e78bc0e841f073625d02aec68f81a0cbf (diff)
Add config for minimum worker threads in Jetty
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/abi-spec.json2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java8
-rw-r--r--jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.jdisc.http.server.def5
3 files changed, 13 insertions, 2 deletions
diff --git a/jdisc_http_service/abi-spec.json b/jdisc_http_service/abi-spec.json
index 43f68274c2e..c19ce5ce83c 100644
--- a/jdisc_http_service/abi-spec.json
+++ b/jdisc_http_service/abi-spec.json
@@ -741,6 +741,7 @@
"public com.yahoo.jdisc.http.ServerConfig$Builder filter(com.yahoo.jdisc.http.ServerConfig$Filter$Builder)",
"public com.yahoo.jdisc.http.ServerConfig$Builder filter(java.util.List)",
"public com.yahoo.jdisc.http.ServerConfig$Builder maxWorkerThreads(int)",
+ "public com.yahoo.jdisc.http.ServerConfig$Builder minWorkerThreads(int)",
"public com.yahoo.jdisc.http.ServerConfig$Builder stopTimeout(double)",
"public com.yahoo.jdisc.http.ServerConfig$Builder jmx(com.yahoo.jdisc.http.ServerConfig$Jmx$Builder)",
"public com.yahoo.jdisc.http.ServerConfig$Builder metric(com.yahoo.jdisc.http.ServerConfig$Metric$Builder)",
@@ -894,6 +895,7 @@
"public java.util.List filter()",
"public com.yahoo.jdisc.http.ServerConfig$Filter filter(int)",
"public int maxWorkerThreads()",
+ "public int minWorkerThreads()",
"public double stopTimeout()",
"public com.yahoo.jdisc.http.ServerConfig$Jmx jmx()",
"public com.yahoo.jdisc.http.ServerConfig$Metric metric()",
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
index 303b36430a5..03f29aa7bf3 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
@@ -84,7 +84,7 @@ public class JettyHttpServer extends AbstractServerProvider {
server.setStopTimeout((long)(serverConfig.stopTimeout() * 1000.0));
server.setRequestLog(new AccessLogRequestLog(accessLog, serverConfig.accessLog()));
setupJmx(server, serverConfig);
- ((QueuedThreadPool)server.getThreadPool()).setMaxThreads(serverConfig.maxWorkerThreads());
+ configureJettyThreadpool(server, serverConfig);
for (ConnectorFactory connectorFactory : connectorFactories.allComponents()) {
ConnectorConfig connectorConfig = connectorFactory.getConnectorConfig();
@@ -135,6 +135,12 @@ public class JettyHttpServer extends AbstractServerProvider {
}
}
+ private static void configureJettyThreadpool(Server server, ServerConfig config) {
+ QueuedThreadPool pool = (QueuedThreadPool) server.getThreadPool();
+ pool.setMaxThreads(config.maxWorkerThreads());
+ pool.setMinThreads(config.minWorkerThreads());
+ }
+
private static JMXServiceURL createJmxLoopbackOnlyServiceUrl(int port) {
try {
return new JMXServiceURL("rmi", "localhost", port, "/jndi/rmi://localhost:" + port + "/jmxrmi");
diff --git a/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.jdisc.http.server.def b/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.jdisc.http.server.def
index 3118a7dea64..81f9859fabd 100644
--- a/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.jdisc.http.server.def
+++ b/jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.jdisc.http.server.def
@@ -27,9 +27,12 @@ filter[].id string
# The binding of a filter
filter[].binding string
-# Max number of threads in pool
+# Max number of threads in underlying Jetty pool
maxWorkerThreads int default = 200
+# Min number of threads in underlying Jetty pool
+minWorkerThreads int default = 8
+
# Stop timeout in seconds. The maximum allowed time to process in-flight requests during server shutdown. Setting it to 0 disable graceful shutdown.
stopTimeout double default = 30.0