-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
1sec Long Pause (stop-the-world) on Gen1 GC #88426
Comments
Tagging subscribers to this area: @dotnet/gc Issue DetailsDescriptionRecently my team has been working on lowering down memory allocation to minimize GC pressure.
GC Stats showing 1s Gen1 GC pause When looking into the CPU Stack of profile, we discovered that these few calls during GC causes most part of delay:
When Goto Source these lines are most time consuming ... Configuration.NET core 7
|
Hello @dickens-code , would it possible to securely share the traces you have collected? Also are you observing that this has regressed in .NET 7? |
yes, it is happening to net7, however I can't share the profile (etl file) to you due to security reason. Anything I should check? |
would it be possible to collect some GCCollectOnly traces? That shouldnt have much PII or other info. |
@mangod9, I am working with @dickens-code offline to diagnose the issue. We will report findings here whenever we make progress. |
Description
Recently my team has been working on lowering down memory allocation to minimize GC pressure.
While we used different technique to reuse/recycle object, or use ArrayPool.Shared to rent/return memory, we found that there are periodic long pauses (~1s, stop-the-world) of Gen0/Gen1 GC few times per hour.
We used PerfView command to spot it out:
GC Stats showing 1s Gen1 GC pause
[pic1]
The Gen0 Frag% is obvious very high (98.98%) ...
If I looked into CPU Stack with filter applied for GC period, looks like most CPU time is used for doing compact?
When looking into the CPU Stack of profile, we discovered that these few calls during GC causes most part of delay:
[pic2]
When firing up Goto Source these lines are most time consuming ...
InsertCleanupSyncBlock
[pic3]
IsPromoted
[pic4]
Would you mind telling us that what would be the root cause of it, and anything we can do to prevent such long app pause (1N Gen1 non-concurrent GC)? Or how to solve fragmentation problem if that is the root cause?
Thanks a lot~
dickens
Configuration
The text was updated successfully, but these errors were encountered: