我在一个主机中的容器中运行了15个应用程序。我的应用程序使用默认线程池大小基于它检测到的CPU数量,这是主机公开的内容(16),但是我为每个应用程序分配1个CPU(使用mesos)我知道这些只是cpu-shares而不是完整的CPU,但我不认为我的应用程序应该配置为CPU相关设置的默认值(我已经定义了每个jvm的最大内存)。
在AKKA线程池执行器中,parallelism-factor,parallelism-max的正确值是什么?
由于
答案 0 :(得分:1)
parallelism-factor
的上限为parallelism-max
(和parallelism-min
,基本上是max(parallelism-min, min(parallelism-max, cores * parallelism-factor)
的结果)所以如果你想向下限制,你只需设置parallelism-max
低价值。
对于单个逻辑核心,听起来像低值应该更合适。默认是设置的,单个核心多个线程基本上只会相互竞争,但另一方面,如果在某个地方有一点点意外阻塞,那么有一些额外的线程是好的。我会选择四个或者八个并对应用程序进行基准测试。