-
Notifications
You must be signed in to change notification settings - Fork 5.3k
GetTotalPauseDuration implementation (#68835) #87143
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
GetTotalPauseDuration implementation (#68835) #87143
Conversation
|
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
|
Tagging subscribers to this area: @dotnet/gc Issue Detailsnull
|
|
@cshung I see this is still a draft. Today is code complete for the July release. If you want this change to be included in that release, please get a tactics approval, a sign-off, confirm the CI failures are unrelated, and merge it before EOD today. |
|
@cshung I see this is still a draft. Reminder - Tomorrow Monday 10th is Code Complete for the August Release. If you intend to get this fix included in that servicing release, please make sure to get a Tactics approval and merge the PR before 4pm, because that's when I close the branches to start merging staging into internal. |
jeffschwMSFT
left a comment
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.
approved. please get a code review. we will take for consideration in 6.0.x
2037e28 to
6cca632
Compare
src/libraries/System.Runtime/src/MatchingRefApiCompatBaseline.txt
Outdated
Show resolved
Hide resolved
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
|
no-merge can be removed once review feedback addressed |
Maoni0
left a comment
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!
Backport of #68835 to release/6.0-staging
Customer Impact
One of our first-party customers reported that they need
GC.GetTotalPauseDurationto help with their autoscaling. Here is what he said:We need
GC.GetTotalPauseDurationin order to accurately measure the impact of GC in our services and in order for us to have actionable signals to manage autoscaling policies. We have faced numerous customer-impacting Sev2 incidents where a .NET process was CPU-limited yet not consuming 100% CPU, which in several distinct cases we concluded was due to Workstation GC pauses. WithGC.GetTotalPauseDuration, we will be able to accurately measure how close we are to hitting CPU limits, which enables us to configure appropriate autoscaling policies that would help us avoid customer impact. While the existing EventCounter “time-in-gc” helps to some extent, it is a noisy and unreliable source because it doesn’t measure the actual average time in GC, just the average time in GC for the most recent GC, which is skewed since not all GC’s are comparable (different gen’s, compacting Vs. not, etc.)Testing
Risk
Low, this is an additional API. Any existing code that does not call the new API should not be affected at all.