-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Contention scheduling actions in HashedWheelTimerScheduler #7130
Comments
cc @Arkatufus who designed this feature. So I believe this is coming from our decision to re-model the |
There shouldn't be any extra thread allocation with |
@raypurchasett so @Arkatufus was able to reproduce your result - I wrote a little script to do this as well. NET Core App 3.1
NET 8.0
I'm not getting any useful contention data back using |
My gist with the PowerShell script https://gist.github.com/Aaronontheweb/fb1ac0b9577abebe422f3976f9c1d63f |
Looks like @Arkatufus ' solution on #7144 fixes this issue: NET 8.0
|
…#7144) * Add unit test * Add contention fix * Replace CountdownEvent with TaskCompletionSource in net6.0 * Cleanup code, revert switch to if * Revert if block * Fix unit test --------- Co-authored-by: Aaron Stannard <aaron@petabridge.com>
Apologies, been away for a while. Thanks for fixing. |
This change was introduced in version v1.5.14 - going to flag v1.5.14 --> v1.5.18 as having critical bugs in them on NuGet, so it prompts users to upgrade. |
Version Information
Version of Akka.NET? 1.5.18
Which Akka.NET Modules? Akka.Core
Describe the bug
It seems like the dotnet 6 and greater version of the HashedWheelTimerScheduler introduces significant contention/blocking when registering many actions. We have thousands of actors who schedule reminders to stop themselves, and often this happens at the same time. When I target dotnet 5 we don't see this issue. We initially noticed this because our thread pool count went through the roof.
See this gist:
https://gist.github.com/raypurchasett/605ee8a0beeeafa6834b9daa6c960a8e
We've seen this running on: windows (rider), docker desktop (windows), and EKS.
The text was updated successfully, but these errors were encountered: