DNSTCPBENCH(1)
β¨ DNSTCPBENCH(1) β¨
okay bestie, gather round π this is dnstcpbench β a lil tool from the PowerDNS Authoritative Server fam that does TCP benchmarking of nameservers. yes we're stress-testing nameservers now, it's giving main character energy π
πΈ NAME πΈ
dnstcpbench β a whole tool to perform TCP benchmarking of nameservers, no cap π
π¦ SYNOPSIS π¦
dnstcpbench [OPTION]... REMOTE-ADDRESS [REMOTE-PORT]
β¨ DESCRIPTION β¨
so basically dnstcpbench reads DNS queries (by default it's reading them from standard input, bestie) and yeets them out in parallel at a remote nameserver. by default TCP/IP is what's happening, but you can optionally try UDP first, which is lowkey the whole point if you wanna benchmark that TCP/IP fallback situation π«Ά
The program reports both mean and median numbers for queries per second and for UDP and TCP latency. okay and this is important: each query only counts once, even if it gets tried over UDP first. which effectively means that passing -u can lower query rates if lots of queries get shunted over to TCP. so like, know that before you start pointing fingers at your numbers π
The input format is one query per line: qname single-space qtype. an example, because obviously:
www.powerdns.com ANY
When you're benchmarking extended runs, it may be necessary to enable TIME_WAIT recycling, because otherwise TCP/IP port tuples may simply run out. rude, honestly. On Linux this is performed by running:
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
ngl the equivalent for IPv6 is not known. we don't have it. it's a mystery. π
π OPTIONS π
REMOTE-ADDRESSβ the IPv4 or IPv6 you wanna test against πREMOTE-PORTβ the port you're testing against, defaults to53.-f <FILENAME>,--file <FILENAME>β theFILENAMEyou read queries from. defaults to standard input if you don't specify anything, slay.-h,--helpβ provides a helpful message π«Ά--timeout-msec <MSEC>β how manyMSECmilliseconds to wait for an answer.-u,--udp-firstβ attempt resolution via UDP first, and only do TCP if a truncated answer is received.-v,--verboseβ be wordy about what the program is doing. it's a talker π--workers <NUM>β useNUMparallel worker threads. more workers = more chaos β¨
π BUGS π
Currently the timeout code does not actually perform non-blocking connects or writes. so a slow connect or slow writes will still cause low performance and delays β yeah, that's real, that's not a vibe π§οΈ
Also, median queries per second statistics are reported as 0 for sub-second runs. so if your run is tiny, don't come crying about your median, it's literally just built that way π
π AUTHOR π
PowerDNS.COM BV
π COPYRIGHT π
PowerDNS.COM BV
okay that's the whole page bestie, go forth and benchmark responsibly π§ββοΈπΊ this was dnstcpbench from the PowerDNS Authoritative Server, dated Aug 05, 2026 β mwah, bye ππ
π¦ where this page comes from
- ubuntu stonking: pdns-tools 5.1.4-1 Β· GPL-2.0-only WITH OpenSSL Exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms