diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-10-19 11:15:40 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-10-19 11:15:40 +0200 |
commit | 126b668244b0cf9cdd40f15d57a7658d4e9066fa (patch) | |
tree | a59727df2a4b380ad2ca2d005a8d00070d116a24 /jdisc_http_service | |
parent | 93dab00e78bc0e841f073625d02aec68f81a0cbf (diff) |
Add config for minimum worker threads in Jetty
Diffstat (limited to 'jdisc_http_service')
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 |