[akka-user] Akka actors not getting balanced thread time
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
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
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
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.