-
Notifications
You must be signed in to change notification settings - Fork 11
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
Keepalive on/off ? #242
Comments
that makes sense! There is kinda support for this for plain DNS over TCP or DNS over TLS Benchmarks by using but for DoH and DoQ there is no option to disable built-in keep-alives of the client, I'll think about this! |
For the service we're setting up, each client will typically make one DNS request a minute or so. For this, I'd normally set I do know that the first request of a TLS-based session is going to be slow because of the certificate processing that needs to be done, and that's going to happen for every client. At that point, using keepalive is almost cheating. :-) |
I'd guess the shortest path would be to make |
Dang, I just discovered that
I expected this to start 10 separate connections to the server ( |
yea, that is default behaviour for HTTP/2 (also http/3 and DoQ). Single connection and requests are multiplexed on top of it, but I am now working on a change that will introduce flag, that will basically make each worker act as absolutely separate worker with separate connections |
When do you think that might be ready? Asking for a friend. :-) |
I plan to release the feature in the next two weeks. Need to do some refactorings first, think about API, and test this properly. 🙂 |
Ok, thanks. Do you know how much faster HTTP/2 might be than HTTP/1.1 in the same situation? I'm inclined to believe that they'd be about equal, but that's based on precisely no evidence. |
I'm having dreadful problems with HTTP/1.1; I run it, it works; I run it again, it fails. I suspect it's running out of ports because they're all in TIME_WAIT. |
I am now drafting this change as part of #252, by providing
regarding an option to disable keep-alives, I think such option would make sense only for DoH over HTTP/1.1. For DoH over HTTP/2 or HTTP/3 and DoQ, it does not make sense as those are built around maintaining persistent connections.
usually from my experience and various benchmarks I expect the DoH over HTTP/2 to be much more performant even two times than DoH over HTTP/1.1 🙂 |
Oh, I see my problem: |
Describe the feature
When running a TCP-based test (TCP/TLS/DoH/etc), it's hard to tell if connections are being reused or not. Could you add a flag to enable/disable connection reuse (aka keepalive)?
Why do you need this feature
I'm trying to get our DoH server to handle 200,000 QPS with <100ms response time for separate users. If the dnspyre clients are using keepalive, then the results may differ from what we'll see in production.
The text was updated successfully, but these errors were encountered: