java如何配置和调优Akka Dispatchers
我在这里查看文档:http://doc.akka.io/docs/akka/2.3.3/java/dispatchers.html
我们使用Akka的方式是,为不同的参与者提供两个单独的分派器(默认的fork-join-executors)。我们现在遇到了一些性能问题,我们正在研究如何优化dispatcher配置参数,以及它们如何影响应用程序的性能
我查阅了文档,但并不真正理解配置参数。 例如,对于简单的默认值,fork join executor dispatcher:
这些是什么?我们应该如何配置它们以了解它们如何影响应用程序性能
# Min number of threads to cap factor-based parallelism number to
parallelism-min = 2
# Parallelism (threads) ... ceil(available processors * factor)
parallelism-factor = 2.0
# Max number of threads to cap factor-based parallelism number to
parallelism-max = 10
谢谢
# 1 楼答案
当然,此配置取决于您的硬件
假设您的计算机上有两个可用的处理器,那么您可以通过并行度因子配置给定调度程序将拥有的线程数
然后,您可以固定边界以控制此乘法的结果并避免极值
现在,如果您想选择正确的并行因子+边界,您必须问问自己,在给定的时间内,您的调度程序将负责多少参与者
假设更多的参与者意味着更多的线程似乎是合乎逻辑的,但我强烈建议您监视您的系统,以找到性能问题的根本原因,而不仅仅是随机调整配置
作为旁注,您应该检查dispatcher的“吞吐量”参数,因为它允许您配置参与者线程分配的公平性。在批处理过程中,这确实会产生很大的不同