-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[PERF] Akka: move all dispatchers off of the dedicated thread pool #7117
[PERF] Akka: move all dispatchers off of the dedicated thread pool #7117
Conversation
…nto default thread pool
Working on benchmarks now |
RemotePingPongThis PR
|
PingPongWorth noting that none of the actors in this benchmark ever executed anything over a dedicated thread pool - the only thing that can be measured here is if there was CPU-steal happening with the idle DTPs in the background. This PR
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed changes
type = PinnedDispatcher | ||
executor = "fork-join-executor" | ||
type = Dispatcher | ||
executor = "default-executor" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moves Akka.Persistence back over to the normal dispatcher when there isn't a custom one used by the plugin (there are none, IIRC)
@@ -570,7 +570,7 @@ akka { | |||
### Default dispatcher for the remoting subsystem | |||
|
|||
default-remote-dispatcher { | |||
executor = fork-join-executor | |||
executor = default-executor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moves Akka.Remote off of the dedicated thread pool
@@ -389,7 +389,7 @@ akka { | |||
# default dispatcher) | |||
internal-dispatcher { | |||
type = "Dispatcher" | |||
executor = "fork-join-executor" | |||
executor = "default-executor" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moves the internal dispatcher off its own dedicated thread pool
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Changes
In the aftermath of .NET 6, I don't think
ForkJoinExecutor
s and theDedicatedThreadPool
are as necessary as they once were. Automatic thread injection when blocking is detected should resolve many of the blocking I/O issues we used to worry about.On the flipside this should radically reduce idle CPU consumption of Akka.NET and make the platform more AOT-friendly, among other things. Will provide benchmarks momentarily.
Should resolve #5400
Checklist
For significant changes, please ensure that the following have been completed (delete if not relevant):
Latest
dev
BenchmarksInclude data from the relevant benchmark prior to this change here.
This PR's Benchmarks
Include data from after this change here.