-
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
HTTP/3 connection or stream shutdown is slow #77139
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsDescriptiongRPC HTTP/3 benchmark performance drastically decreased. It looks like something with stream/connection shutdown is taking forever, which affects RPS calculation. (And slow shutdown doesn't seem like a good thing regardless of RPS calculations) ConfigurationLinux citrine perf machine, crank commands below Regression?Yes, something in the following changes caused HTTP/3 gRPC tests to be really slow (shutdown takes forever which causes the RPS calculation to be longer) DataChanging only the runtime version used by the client shows a difference in RPS. Before the changes:~3.8m RPS crank command
After the changes:~300k RPS crank command
AnalysisI narrowed down the changes in runtime to b7fca07...1cb2f42 which contains some Quic API changes that may be involved in the regression.
|
@BrennanConroy how did you come to this suspicion? Just to help us avoid rediscovering a wheel when looking at this. |
I ran both crank commands and the first one (the fast one from before changes) is full of errors:
So I don't think the tests are comparing the same thing. Have you seen this error as well? |
The test should be ~15 seconds, but you can see from the output that it takes 5+ minutes to print "Stopping job 'load'", but it's almost immediate with the "fast" run. So something is slower about the close sequence.
Interesting, I had only seen it once or twice in the output, not dozens of times. |
So the culprit is When I changed the However, I'm not 100% sure this is the best solution (I'm wary of issues like #71927), so we'll discuss it in the team before committing to anything. |
Fixes dotnet#77139 Includes additional logging to check for leaks and freed GC handled, remove them before publishing.
Description
gRPC HTTP/3 benchmark performance drastically decreased. It looks like something with stream/connection shutdown is taking forever, which affects RPS calculation. (And slow shutdown doesn't seem like a good thing regardless of RPS calculations)
Configuration
Linux citrine perf machine, crank commands below
Regression?
Yes, something in the following changes caused HTTP/3 gRPC tests to be really slow (shutdown takes forever which causes the RPS calculation to be longer)
b7fca07...1cb2f42
Data
Changing only the runtime version used by the client shows a difference in RPS.
Before the changes:
~3.8m RPS
crank command
After the changes:
~300k RPS
crank command
Analysis
I narrowed down the changes in runtime to b7fca07...1cb2f42 which contains some Quic API changes that may be involved in the regression.
The text was updated successfully, but these errors were encountered: