在docker中运行的AKKA Thread Pool Executor的正确并行性因素是什么?

时间:2017-05-12 06:52:03

标签: akka

我在一个主机中的容器中运行了15个应用程序。我的应用程序使用默认线程池大小基于它检测到的CPU数量,这是主机公开的内容(16),但是我为每个应用程序分配1个CPU(使用mesos)我知道这些只是cpu-shares而不是完整的CPU,但我不认为我的应用程序应该配置为CPU相关设置的默认值(我已经定义了每个jvm的最大内存)。

在AKKA线程池执行器中,parallelism-factor,parallelism-max的正确值是什么?

由于

1 个答案:

答案 0 :(得分:1)

parallelism-factor的上限为parallelism-max(和parallelism-min,基本上是max(parallelism-min, min(parallelism-max, cores * parallelism-factor)的结果)所以如果你想向下限制,你只需设置parallelism-max低价值。

对于单个逻辑核心,听起来像低值应该更合适。默认是设置的,单个核心多个线程基本上只会相互竞争,但另一方面,如果在某个地方有一点点意外阻塞,那么有一些额外的线程是好的。我会选择四个或者八个并对应用程序进行基准测试。