[dns-operations] good async DNS library

Tony Finch dot at dotat.at
Mon Apr 29 20:09:49 UTC 2019


John Levine <johnl at taugh.com> wrote:
>
> I've done DNS queries in 100 threads in parallel on a not particularly
> fast server with no trouble.  I could probably run more but that was
> enough for my application.

DNS is a really good protocol for exercising the concurrency performance
of a networking library. It is so lightweight (in the happy path) that
library overhead dominates. I usually use adns for bulk queries (it's too
high-level for this thread's purposes, though) and it will happily handle
a few thousand queries in flight at a time (I don't push harder than that
because the server tends to run out of steam especially if the cache
misses) and when things are hot adns will get over 50k qps. This is all
with one client thread and two sockets (UDP and TCP, it doesn't do port
randomization).

Tony.
-- 
f.anthony.n.finch  <dot at dotat.at>  http://dotat.at/
Cromarty, Forth, Tyne: Southeast 3 or 4, increasing 5 at times. Smooth or
slight. Mainly fair. Good, occasionally poor.



More information about the dns-operations mailing list