Make DNS lookups async in Go's net package #3588
Labels
exit-node
Exit node related
L5 All users
Likelihood
optimization
OS-windows
P1 Nuisance
Priority level
T3 Performance/Debugging
Issue type
Go's net package on Windows currently consumes a thread while doing DNS lookups, which means Tailscale's ExitDNS service (the DNS server that runs when you're running an exit node) consumes one thread per outstanding DNS lookup.
@dblohm7 wrote a proof-of-concept of using DnsQueryEx to do them async. It requires Windows 8, but we should be able to move that code to Go's net package so everybody benefits, without changing the Go net Lookup APIs.
The text was updated successfully, but these errors were encountered: