Our current technology (what we want to replace) is using 3 different criteria when making automatic backpressure: number of blocked threads, timeout and queue size. The first one apply to ask patterns. The second one enable us to validate that the system is not blocking cpu due to pending tasks and the third one does the job if there is no too many queued elements. With a correct combination of the three parameters we could increase the throughput up to 40-45kCmd/s in my laptop, both client and server are monothread. The packet size through the net is adaptive in function of the concurrency and pressure.
Many thanks for your answer and for driving me to the right direction. I'll test the concepts and let you know. El martes, 25 de marzo de 2014 11:16:28 UTC+1, Akka Team escribió: > > Hi Eduardo, > > The problem is that in your case no matter how large you choose your > buffer sizes, they will blow up because there is no backpressure between > the two actors. This is independent of remoting, you can blow up mailboxes > even locally. The issue with stash/unstash only comes into the picture > because the buffer grows out of bounds. Even if that issue would not exist, > eventually GC kicks in due to continuously increasing memory usage. > > -Endre > > > On Tue, Mar 25, 2014 at 11:00 AM, Vitaliy V. Shopov > <[email protected]<javascript:> > > wrote: > >> And what is your updated benchmark result?) >> >> >> 2014-03-25 13:57 GMT+04:00 Eduardo Fernandes <[email protected]<javascript:> >> >: >> >> Many thanks for your suggestions. >>> >>> I'll check the profiling and the settings below. >>> >>> Thanks again for your quick answer! >>> >>> >>> 1. >>> 2. # Sets the send buffer size of the Sockets, >>> 3. # set to 0b for platform default >>> 4. send-buffer-size = 256000b >>> 5. >>> 6. # Sets the receive buffer size of the Sockets, >>> 7. # set to 0b for platform default >>> 8. receive-buffer-size = 256000b >>> >>> >>> El martes, 25 de marzo de 2014 09:46:28 UTC+1, Akka Team escribió: >>>> >>>> Hi Eduardo, >>>> >>>> >>>> On Tue, Mar 25, 2014 at 2:08 AM, Eduardo Fernandes <[email protected]>wrote: >>>> >>>>> Hi all. >>>>> >>>>> I'm pretty sure this is because I don't have the correct configuration >>>>> on my side. Please find in the attached file a simple Eclipse Kepler >>>>> Maven >>>>> project with an echo actor. I'm using Akka 2.3. >>>>> >>>>> The basic configuration is >>>>> >>>>> actor { >>>>> provider = "akka.cluster.ClusterActorRefProvider" >>>>> default-dispatcher { >>>>> throughput = 1024 >>>>> fork-join-executor { >>>>> parallelism-max = 4 >>>>> } >>>>> } >>>>> default-mailbox { >>>>> mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMai >>>>> lbox" >>>>> } >>>>> } >>>>> >>>>> Based on other thread in this group. After heating the JVM I got >>>>> around 11.000 msg per second. A small and basic program with NIO give me >>>>> around 45.000 in the same machine, using the loopback interface. >>>>> >>>> >>>> If you refer to the other localhost remoting benchmark thread, the >>>> related ticket is here: https://www.assembla.com/ >>>> spaces/akka/simple_planner#/ticket:3960 >>>> >>>> You can check with a profiler and see if most of the time spent in >>>> unstash/stash in EndpointWriter to verify that it is the same issue. >>>> >>>> If you properly backpressure messages between the two nodes there >>>> should be no performance loss due to unstashing, you only need to increase >>>> the tcp send buffer. The stash/unstash death spiral only pops up because >>>> buffers are blowing up. >>>> >>>> >>>>> >>>>> I need to use a single actor due to processing requirements. I'm using >>>>> a simple sharding and a single frontend / backend topology (configured >>>>> using roles). >>>>> >>>>> Is it possible to flush the low level TCP channel based, for example, >>>>> in the volume of pending command to all actors belonging to a particular >>>>> host? Or is this already done based on some setting? >>>>> >>>> >>>> Messages are pumped out to TCP as soon as possible, there is no >>>> flushing involved. >>>> >>>> -Endre >>>> >>>> >>>>> >>>>> Many thanks for any help. >>>>> >>>>> Best regards, >>>>> >>>>> Eduardo. >>>>> >>>>> >>>>> -- >>>>> >>>>>>>>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> >>>>> Visit this group at http://groups.google.com/group/akka-user. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Akka Team >>>> Typesafe - The software stack for applications that scale >>>> Blog: letitcrash.com >>>> Twitter: @akkateam >>>> >>> -- >>> >>>>>>>>>> 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 [email protected] <javascript:>. >>> To post to this group, send email to [email protected]<javascript:> >>> . >>> Visit this group at http://groups.google.com/group/akka-user. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> >>>>>>>>>> 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 [email protected] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> Visit this group at http://groups.google.com/group/akka-user. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Akka Team > Typesafe - The software stack for applications that scale > Blog: letitcrash.com > Twitter: @akkateam > -- >>>>>>>>>> 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
