aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/handler/threadpool
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-30 15:30:29 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-30 15:30:29 +0200
commit3027edb077b126b760f1d374a2b753ef69204973 (patch)
treed42da91853c900c7313978a597d62d296cf8757f /container-core/src/main/java/com/yahoo/container/handler/threadpool
parent5372cf371b4cffa127604af76e87432297358bab (diff)
Use minimum 8 threads when config contains a scale factor
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/handler/threadpool')
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/threadpool/DefaultContainerThreadpool.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/handler/threadpool/DefaultContainerThreadpool.java b/container-core/src/main/java/com/yahoo/container/handler/threadpool/DefaultContainerThreadpool.java
index b55cd9bf3b5..7f4d1462102 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/threadpool/DefaultContainerThreadpool.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/threadpool/DefaultContainerThreadpool.java
@@ -26,6 +26,7 @@ public class DefaultContainerThreadpool extends AbstractComponent implements Aut
private static final Logger log = Logger.getLogger(DefaultContainerThreadpool.class.getName());
private static final int MIN_QUEUE_SIZE = 650;
+ private static final int MIN_THREADS_WHEN_SCALE_FACTOR = 8;
private final ExecutorServiceWrapper threadpool;
@@ -94,14 +95,14 @@ public class DefaultContainerThreadpool extends AbstractComponent implements Aut
private static int maxThreads(ContainerThreadpoolConfig config, int cpus) {
if (config.maxThreads() > 0) return config.maxThreads();
else if (config.maxThreads() == 0) return 4 * cpus;
- else return Math.abs(config.maxThreads()) * cpus;
+ else return Math.max(MIN_THREADS_WHEN_SCALE_FACTOR, Math.abs(config.maxThreads()) * cpus);
}
private static int minThreads(ContainerThreadpoolConfig config, int max, int cpus) {
int threads;
if (config.minThreads() > 0) threads = config.minThreads();
else if (config.minThreads() == 0) threads = 4 * cpus;
- else threads = Math.abs(config.minThreads()) * cpus;
+ else threads = Math.max(MIN_THREADS_WHEN_SCALE_FACTOR, Math.abs(config.minThreads()) * cpus);
return Math.min(threads, max);
}