Hi,

I think you (and probably everyone else here) need more data to figure out 
why your system is behaving as it is. 

Above, you write the configuration with four machines exposes the behaviour 
you describe. Does that mean with 12 machines the CPUs are fully utilized? 
What about a single machine. Can you fully utilize a single machine?

I would add some sort of monitoring to your system and try to figure out 
how a single actor system behaves. If you are able to fully utilize a 
single machine, find out what happens if you use more than one.

In general, understanding a concurrent and distributed system is hard, so 
IMHO data is your best friend. Therefore, measure what's going on. And of 
course there is a lot of information missing. Are you doing any blocking 
stuff, any IO, how large is the data you have to send around in the 
cluster, and so on. You also write you have to ensure ordering of messages, 
and I guess that will limit parallelism as well.

best

Carsten

Am Dienstag, 17. November 2015 22:10:37 UTC+1 schrieb Flo B.:
>
> Hallo everyone, 
>
> I have a question about CPU-usage and a large number of actors. I'm 
> currently playing with a server-system with 15 machines and each machine 
> has 2x Intel(R) Xeon(R) CPU E5-2450 v2 @ 2.50GH (8 Cores, 16 Threads for 
> each CPU)
> I also have a measurement client which is one of the machines.
>
> I have 4 machines e. g. and they handle 20 000 actors with a 
> cluster-configuration. If I send a number of messages to each actor at one 
> time and measure the time between sending and receiving on the measurement 
> client, I found out that I can only send a certain amount of messages to 
> the actors. More messages lead to flow control warnings and the client does 
> not get all answers in time. 
> If I use 12 machines, the cluster-system can handle more messages, which 
> makes sense. 
>
> What surprised me is the CPU-usage for the configuration with 4 machines. 
> The CPU-usage per machine is only around 1000% (possible is 3200%; with 
> Linux top command).
>
> I use the following dispatcher-configuration. Each other configuration 
> (e.g. a big core-pool-size or bigger/smaller throughput) have worse time 
> results and lead to more CPU-usage.
>
> myDispatcher {
>      type = Dispatcher
>      executor = "thread-pool-executor"
>      thread-pool-executor {
>      core-pool-size-min = 16.0
>      core-pool-size-factor = 2.0
>      core-pool-size-max = 32
> }
>     throughput = 60
> }
>
> My explanation for this phenomenon is that each CPU can only handle a 
> certain amount of actors at one point of time (or a small range) and a 
> certain number of actors do not need all the power of one core/thread. 
> Could this be the explanation?
>
> Best Regards
>
> Flo
>
>
>
>
>
>
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to