Replies: 5 comments 2 replies
-
dnscrypt-proxy/dnscrypt-proxy/example-dnscrypt-proxy.toml Lines 142 to 144 in 4caa7b6 Randomly choose 1 of ... and then query to it. |
Beta Was this translation helpful? Give feedback.
-
I think this is exactly the current behaviour. I believe that parallelizing and returning the first match would improve performance significantly.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
…On Monday, June 21st, 2021 at 1:14 PM, lifenjoiner ***@***.***> wrote:
https://github.com/DNSCrypt/dnscrypt-proxy/blob/4caa7b6d64f4126ec89021a6ef13ffc62a215d6e/dnscrypt-proxy/example-dnscrypt-proxy.toml#L142-L144
Randomly choose 1 of ... and then query to it.
—
You are receiving this because you authored the thread.
Reply to this email directly, [view it on GitHub](#1757 (comment)), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/ABOA72ZLMDJVG25SMK5FGB3TT4UJFANCNFSM47BMGR4Q).
|
Beta Was this translation helpful? Give feedback.
-
Querying all resolvers simultaneously can cause congestion and produce irrelevant measurements. It would also send a large amount of connections to relays at the same time, which would also return wrong results, or trigger rate limits. The current behavior is, like any benchmark, to test one thing at a time. However, as soon as at least one resolver is reachable, queries are handled. So, at startup time, initial connections may not be using the most optimal resolver, but there's very little delay before the configuration is usable. Once all resolvers have been benchmarked, the ones with the lowest latencies are used instead. |
Beta Was this translation helpful? Give feedback.
-
This is an example of a query that took around 16 seconds to be executed with the
You can see that after a Thanks. |
Beta Was this translation helpful? Give feedback.
-
I am already handling that option, I thought other timeouts may have been used throughout the resolving process.
I will try to disable some of the servers then.
Thank you very much.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
…On Monday, June 21st, 2021 at 1:49 PM, Frank Denis ***@***.***> wrote:
#
# How long a DNS query will wait for a response, in milliseconds.
#
# If you have a network with *a lot* of latency, you may need to
#
# increase this. Startup may be slower if you do so.
#
# Don't increase it too much. 10000 is the highest reasonable value.
timeout
=
5000
Latency of DNS queries has a very high variance, so it takes time to learn a reasonable sorting order for these resolvers. Every time there's a network error, the resolver gets a penalty, which decreases its probability of being chosen for further queries.
But if some servers are slow or unreliable, I'd suggest disabling them instead (disabled_server_names=[...])
—
You are receiving this because you authored the thread.
Reply to this email directly, [view it on GitHub](#1758 (reply in thread)), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/ABOA725U6ESSQEVQDZV2SRDTT4YPBANCNFSM47BP2LFA).
|
Beta Was this translation helpful? Give feedback.
-
Output of the following commands:
./dnscrypt-proxy -version
./dnscrypt-proxy -check
./dnscrypt-proxy -resolve example.com
What is affected by this bug?
The load balancer (with different strategies) seems to be waiting for all queries to be executed first, without returning the first match. This makes the resolver very slow.
When does this occur?
When resolving any query. Used all the load balancing strategies to check if the issue was related to a specific one but it is not.
Where does it happen?
On any domain that has not been cached before.
How do we replicate the issue?
p2
)Expected behavior (i.e. solution)
Return the first (fastest) response from one of the resolvers.
Other Comments
It seems that the load balancer does not resolve in parallel and/or waits for the requests to either fail or timeout before returning a previous successful query.
Beta Was this translation helpful? Give feedback.
All reactions