-
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
HttpClient creates Quic threads even if HTTP/3 is not in use #74629
Comments
Tagging subscribers to this area: @dotnet/ncl Issue Details
Application crates 2x threads per core even if HTTP/3 and Quic are not in used. This was originally reported on legacy system with 54 cores. That will create 100+ threads ... for nothing. We should figure out how to make
|
I think we can simply try opening and closing the API registration (that should deallocate the internal MsQuic threadpool), and then lazily reopen it when we actually intend to use it. |
Tagging subscribers to this area: @dotnet/ncl Issue Details
Application crates 2x threads per core even if HTTP/3 and Quic are not in used. This was originally reported on legacy system with 54 cores. That will create 100+ threads ... for nothing. We should figure out how to make
|
Triage: This contributes to 1MB per core Working set regression on Windows 2022/Win11+ and on Linux when msquic is present. |
I talked with Nick in MsQuic discord about this, One direction they consider moving is allowing applications (in our case, .NET Runtime) completely control the threads/scheduling, but that is distant future. Closing MsQuic via |
Is it worth of picking up that change? It seems like we can suppress the ongoing thread cost but we would still create and destroy the threads when checking the version... |
That MsQuic PR is making API changes, which would prevent it from being ported to the release branch. |
Reopening for backport |
Based on discussion on the PR: #75330 (comment) ... we believe some fix should happen in 7.0 - either in RC2/GA or in servicing. |
Reopening for 7.0 backport (though we may need to wait for more validation in main first). |
Open questions:
|
We have customers impacted on 6.0 as well - only via Kestrel. Reopening for 6.0.x backport. |
Closing as #80785 is merged |
Fixed also in 6.0.15 in PR #80785 -- see #74629 (comment) for details. |
Application crates 2x threads per core even if HTTP/3 and Quic are not in used. This was originally reported on legacy system with 54 cores. That will create 100+ threads ... for nothing.
We should figure out how to make
Quic.IsSupported
cheap and defer thread creation until needed.This will impact legacy app that has no clue tor intention to use Quic or HTTP/3.
The text was updated successfully, but these errors were encountered: