diff --git a/src/core/Akka.Remote/Configuration/Remote.conf b/src/core/Akka.Remote/Configuration/Remote.conf index 364108afb2c..272381980cd 100644 --- a/src/core/Akka.Remote/Configuration/Remote.conf +++ b/src/core/Akka.Remote/Configuration/Remote.conf @@ -583,18 +583,21 @@ akka { default-remote-dispatcher { type = ForkJoinDispatcher executor = fork-join-executor - dedicated-thread-pool { - # Fixed number of threads to have in this threadpool - thread-count = 4 + fork-join-executor { + parallelism-min = 2 + parallelism-factor = 0.5 + parallelism-max = 16 } + throughput = 10 } backoff-remote-dispatcher { type = ForkJoinDispatcher executor = fork-join-executor - dedicated-thread-pool { - # Fixed number of threads to have in this threadpool - thread-count = 4 + fork-join-executor { + # Min number of threads to cap factor-based parallelism number to + parallelism-min = 2 + parallelism-max = 2 } } } diff --git a/src/core/Akka/Dispatch/AbstractDispatcher.cs b/src/core/Akka/Dispatch/AbstractDispatcher.cs index defa523f64a..1b3d56c913f 100644 --- a/src/core/Akka/Dispatch/AbstractDispatcher.cs +++ b/src/core/Akka/Dispatch/AbstractDispatcher.cs @@ -207,7 +207,7 @@ private static DedicatedThreadPoolSettings ConfigureSettings(Config config) var settings = new DedicatedThreadPoolSettings( ThreadPoolConfig.ScaledPoolSize( fje.GetInt("parallelism-min"), - 1.0, + fje.GetDouble("parallelism-factor", 1.0D), // the scalar-based factor to scale the threadpool size to fje.GetInt("parallelism-max")), name:config.GetString("id")); return settings;