[akka-user] Akka actors not getting balanced thread time

2014-04-16 Thread Benjamin Black
I'm creating an application that HTTP streams data that is read from Kafka. 
A client can create multiple connections, with the data being evenly 
balanced between the connections. I'm using Spray 1.3.1 to handle the HTTP 
streaming and Akka 2.3.0. Each client connection creates a streamer actor 
that gets data from a reader actor that is unique to the client. For 
example, if a client connects four times, there will be four streamer 
actors, with the streamer actors all requesting data from one reader actor.

What I'm witnessing is the following behavior (all connections to the same 
process, using default dispatcher):

T0: 1st client connection, 1st streamer and reader created, streamer 
requests 1400 msgs per second from the reader
T1: 2nd client connection, 2nd streamer created, 1st streamer requesting 
600 msgs per second, 2nd streamer requesting 1200 msgs per second
T2: 1st client connection killed, 1st streamer killed, 2nd streamer 
requesting 1700 msgs per second
T3: 3rd client connection, 3rd streamer created, 2nd  3rd streamer each 
requesting 1000 per second (this is the behavior I want!)

Basically it would seem that the 1st streamer is not getting the same 
thread time as later streamers. Is this a crazy thought? Is there anything 
I check to make sure the akka system is setup correctly? If people think 
this could be an akka bug then I can try to put together a small code 
example that demonstrates this behavior. Thanks.

-- 
  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.


Re: [akka-user] Akka actors not getting balanced thread time

2014-04-16 Thread √iktor Ҡlang
Hi Benjamin,

your question is hypothetical and without the code and config etc it's
impossible to make a qualified answer.
What does your JVM monitoring tell you?


On Wed, Apr 16, 2014 at 7:47 PM, Benjamin Black benblac...@gmail.comwrote:

 I'm creating an application that HTTP streams data that is read from
 Kafka. A client can create multiple connections, with the data being evenly
 balanced between the connections. I'm using Spray 1.3.1 to handle the HTTP
 streaming and Akka 2.3.0. Each client connection creates a streamer actor
 that gets data from a reader actor that is unique to the client. For
 example, if a client connects four times, there will be four streamer
 actors, with the streamer actors all requesting data from one reader actor.

 What I'm witnessing is the following behavior (all connections to the same
 process, using default dispatcher):

 T0: 1st client connection, 1st streamer and reader created, streamer
 requests 1400 msgs per second from the reader
 T1: 2nd client connection, 2nd streamer created, 1st streamer requesting
 600 msgs per second, 2nd streamer requesting 1200 msgs per second
 T2: 1st client connection killed, 1st streamer killed, 2nd streamer
 requesting 1700 msgs per second
 T3: 3rd client connection, 3rd streamer created, 2nd  3rd streamer each
 requesting 1000 per second (this is the behavior I want!)

 Basically it would seem that the 1st streamer is not getting the same
 thread time as later streamers. Is this a crazy thought? Is there anything
 I check to make sure the akka system is setup correctly? If people think
 this could be an akka bug then I can try to put together a small code
 example that demonstrates this behavior. Thanks.

 --
  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.




-- 
Cheers,
√

-- 
  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.


Re: [akka-user] Akka actors not getting balanced thread time

2014-04-16 Thread Benjamin Black
I'm working on reducing my code into something I can share. My system is 
actually a bit more complicated than I've explained. I'm using remote 
actors with other actors that coordinator everything and other actors that 
track offsets. I suppose I'm trying to understand how Akka allocates thread 
time to actors. The first streamer actor takes time to get up to full 
streaming speed, so maybe this affects the akka calculation? 

What kind of JVM monitoring are you referring to? I've used YourKit, but it 
didn't notice anything unusual.

On Wednesday, April 16, 2014 3:08:30 PM UTC-4, √ wrote:

 Hi Benjamin,

 your question is hypothetical and without the code and config etc it's 
 impossible to make a qualified answer.
 What does your JVM monitoring tell you?


 On Wed, Apr 16, 2014 at 7:47 PM, Benjamin Black 
 benbl...@gmail.comjavascript:
  wrote:

 I'm creating an application that HTTP streams data that is read from 
 Kafka. A client can create multiple connections, with the data being evenly 
 balanced between the connections. I'm using Spray 1.3.1 to handle the HTTP 
 streaming and Akka 2.3.0. Each client connection creates a streamer actor 
 that gets data from a reader actor that is unique to the client. For 
 example, if a client connects four times, there will be four streamer 
 actors, with the streamer actors all requesting data from one reader actor.

 What I'm witnessing is the following behavior (all connections to the 
 same process, using default dispatcher):

 T0: 1st client connection, 1st streamer and reader created, streamer 
 requests 1400 msgs per second from the reader
 T1: 2nd client connection, 2nd streamer created, 1st streamer requesting 
 600 msgs per second, 2nd streamer requesting 1200 msgs per second
 T2: 1st client connection killed, 1st streamer killed, 2nd streamer 
 requesting 1700 msgs per second
 T3: 3rd client connection, 3rd streamer created, 2nd  3rd streamer each 
 requesting 1000 per second (this is the behavior I want!)

 Basically it would seem that the 1st streamer is not getting the same 
 thread time as later streamers. Is this a crazy thought? Is there anything 
 I check to make sure the akka system is setup correctly? If people think 
 this could be an akka bug then I can try to put together a small code 
 example that demonstrates this behavior. Thanks.
  
 -- 
  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+...@googlegroups.com javascript:.
 To post to this group, send email to akka...@googlegroups.comjavascript:
 .
 Visit this group at http://groups.google.com/group/akka-user.
 For more options, visit https://groups.google.com/d/optout.




 -- 
 Cheers,
 √
  

-- 
  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.


Re: [akka-user] Akka actors not getting balanced thread time

2014-04-16 Thread √iktor Ҡlang
You tune fairness using the throughput setting on the dispatcher you are
using for your actors. 1 means it processes 1 message and then lets other
actors run, N == process up to N messages before handing back the thread to
the pool so other actors may run.

As for timeslice that's completely up to the OS to give the threads in the
pool time to run.


On Thu, Apr 17, 2014 at 12:56 AM, Benjamin Black benblac...@gmail.comwrote:

 I'm working on reducing my code into something I can share. My system is
 actually a bit more complicated than I've explained. I'm using remote
 actors with other actors that coordinator everything and other actors that
 track offsets. I suppose I'm trying to understand how Akka allocates thread
 time to actors. The first streamer actor takes time to get up to full
 streaming speed, so maybe this affects the akka calculation?

 What kind of JVM monitoring are you referring to? I've used YourKit, but
 it didn't notice anything unusual.


 On Wednesday, April 16, 2014 3:08:30 PM UTC-4, √ wrote:

 Hi Benjamin,

 your question is hypothetical and without the code and config etc it's
 impossible to make a qualified answer.
 What does your JVM monitoring tell you?


 On Wed, Apr 16, 2014 at 7:47 PM, Benjamin Black benbl...@gmail.comwrote:

 I'm creating an application that HTTP streams data that is read from
 Kafka. A client can create multiple connections, with the data being evenly
 balanced between the connections. I'm using Spray 1.3.1 to handle the HTTP
 streaming and Akka 2.3.0. Each client connection creates a streamer actor
 that gets data from a reader actor that is unique to the client. For
 example, if a client connects four times, there will be four streamer
 actors, with the streamer actors all requesting data from one reader actor.

 What I'm witnessing is the following behavior (all connections to the
 same process, using default dispatcher):

 T0: 1st client connection, 1st streamer and reader created, streamer
 requests 1400 msgs per second from the reader
 T1: 2nd client connection, 2nd streamer created, 1st streamer requesting
 600 msgs per second, 2nd streamer requesting 1200 msgs per second
 T2: 1st client connection killed, 1st streamer killed, 2nd streamer
 requesting 1700 msgs per second
 T3: 3rd client connection, 3rd streamer created, 2nd  3rd streamer each
 requesting 1000 per second (this is the behavior I want!)

 Basically it would seem that the 1st streamer is not getting the same
 thread time as later streamers. Is this a crazy thought? Is there anything
 I check to make sure the akka system is setup correctly? If people think
 this could be an akka bug then I can try to put together a small code
 example that demonstrates this behavior. Thanks.

 --
  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+...@googlegroups.com.
 To post to this group, send email to akka...@googlegroups.com.

 Visit this group at http://groups.google.com/group/akka-user.
 For more options, visit https://groups.google.com/d/optout.




 --
 Cheers,
 √

  --
  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.




-- 
Cheers,
√

-- 
  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.