Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:25
    valdisz synchronize #3889
  • 17:17
    valdisz synchronize #3889
  • 15:44
    valdisz synchronize #3889
  • 09:22
    ismaelhamed commented #3863
  • Oct 19 23:39
    valdisz synchronize #3889
  • Oct 19 23:08
    edvinasz commented #2947
  • Oct 19 13:36
    Aaronontheweb commented #3973
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3995
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump BenchmarkDotNet from 0.10.… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] edited #3995
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3993
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump Google.Protobuf from 3.9.1… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3991
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3989
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump ApiApprover from 3.0.1 to … (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3992
  • Oct 19 13:34
    dependabot-preview[bot] edited #3993
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3985
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump System.Reflection.Emit fro… (compare)

Peter Bergman
@peter-bannerflow

Here goes a kind of an open question... Does anyone have some insights to share on Akka.Cluster perfomance in terms of throughput of messages from the network into the actor system. For example, what kind of throughput can we expect to one single actor (running on one machine) that receives messages from other remote nodes in the cluster? Of course it depends on what that actor actually do with the messages as well as hardware specs and such but any insights would be appreciated. Real world experience anyone? For example, can we expect 10k messages/second or 100k messages/second. I have seen this article https://petabridge.com/blog/performance-testing-mandatory/ and from that I gather that around 10k messages/second is reasonable?

Also, does anyone have some insight in OS (Windows Server) level tweaks that could be made in order to increase the message throughput into the actor system from the network?

Aaron Stannard
@Aaronontheweb
check out the benchmarks on each pull request
green check mark next to perf-tests
that will take you to a folder chock full of them
there's remote one way and remote two way specs for the current transport
two way is a full request response chain
Peter Bergman
@peter-bannerflow
Hmm yeah ok, I found a lot of them (like this for example http://petabridge-ci.cloudapp.net/viewLog.html?buildId=13097&buildTypeId=AkkaNet_AkkaNetWindowsPerformanceTests&tab=artifacts) if that is what you mean?
Aaron Stannard
@Aaronontheweb
yep
the Akka.Remote Helios transport ones
are the live transport
Peter Bergman
@peter-bannerflow
Yeah ok
Aaron Stannard
@Aaronontheweb
now I just gave a talk on this yesterday
that's a benchmark for our hardware, for our spec
there's no such thing as a global benchmark
Peter Bergman
@peter-bannerflow
Really... is it recorded? :)(
Aaron Stannard
@Aaronontheweb
yep
let me find it
Peter Bergman
@peter-bannerflow
Cool
my talk was only 30 minutes long
so I have no idea why the video is 60 minutes
Arjen Smits
@Danthar
lol that screenshot
Peter Bergman
@peter-bannerflow
Thx
Arjen Smits
@Danthar
its like: "kudos to that guy with the question!"
Peter Bergman
@peter-bannerflow
About the files, is two way (Akka.Remote.Tests.Performance.Transports.HeliosRemoteMessagingThroughputSpec+TwoWay) like an actor receiving a message from the network and then responding with a message to the sender?
Aaron Stannard
@Aaronontheweb
just an FYI: I got some of the causes and reasons behind the prior performance issues with Akka.Remote mixed up during the talk because I couldn't see my notes with the way our monitors were laid out
so I was going from memory, and some of that turned out to be mixed up
the lazy evaluation stuff was actually an issue with slowly creating / shutting down children
different performance issues
but aside from the technical detail there, the major point is true
Peter Bergman
@peter-bannerflow
Alright
Aaron Stannard
@Aaronontheweb
@peter-bannerflow yep, that's correctr
you can see the source for the benchmarks in any of the *.Tests.Performance projects
Peter Bergman
@peter-bannerflow
Cool, in the video you mention that the metrics in the graph show the number of messages pushed through a single Akka.Remote connection, would that be one instance of a process running an application with Akka.Remote that binds to one port ?
Curtis Swartzentruber
@skills0
@Aaronontheweb thanks for feedback, however both the nodes are seed nodes and both cluster configs have both nodes listed. The active/passive bit is managed by our code, I should've made that more clear.
Aaron Stannard
@Aaronontheweb
@skills0 check out some of our Akka.Cluster.Tests.MultiNode
we cover a big range of cluster disconnect / leave scenarios in there and verify they all leave correctly
in your scenario, does the cluster think the node is unreachable or has the node been removed from the membership?
Curtis Swartzentruber
@skills0
I'll check that out. Let me find the exception sequence.
Aaron Stannard
@Aaronontheweb
that'd be great
and please file a Github issue
it's easier to refer back to if there's a problem than Gitter chat
more persistent that way
Curtis Swartzentruber
@skills0
@Aaronontheweb i will put together an issue, but basically we call Cluster.Leave on seed node A, the seed node B goes through some association failure exceptions, marks A unreachable, but then keeps trying to associate with it. Helios then gets into a loop of connection errors (Error connecting, SocketException, etc.). Eventually node B gets "Leader can currently not perform its duties" and at that point the whole AkkaSystem on the up node just seems to stop working consistently.
Aaron Stannard
@Aaronontheweb
if A leaves and finishes the leave process, it will not be marked as unreachable
so when you call Cluster.Leave, do you wait for A to receive a local MemberRemoved event for itself?
or Cluster.RegsiterOnMemberRemoved delegate
before shutting down the actor system?
boekabart @boekabart thinks a helper method for that might be useful...await Cluster.LeaveAsync() or so
qwoz
@qwoz
"it's like watching ferrets describe how a supernova works" ... rofl!