-DNSTCPBENCH(1)\r
+DNSTCPBENCH(1)
==============
-bert hubert <bert.hubert@netherlabs.nl>
NAME
----
SYNOPSIS
--------
'dnstcpbench' [--help] [--file=filename] [--verbose] [--udp-first, -u] [--workers] [--timeout-msec] remote-ip-address [remote-port]
-\r
+
DESCRIPTION
-----------
-dnstcpbench reads DNS queries (by default from standard input) and sends\r
-them out in parallel to a remote nameserver. By default TCP/IP is used, but\r
-optionally, UDP is tried first, which allows for the benchmarking of TCP/IP\r
-fallback.\r
-\r
-The input format is one query per line: qname single-space qtype. An\r
-example:\r
- www.powerdns.com ANY\r
- powerdns.com MX\r
-\r
-When benchmarking extended runs, it may be necessary to enable TIME_WAIT\r
-recycling, as TCP/IP port tuples may otherwise run out. On Linux this is\r
-performed by running:\r
-\r
- # echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle \r
-\r
-The equivalent for IPv6 is not known.\r
-\r
-\r
+dnstcpbench reads DNS queries (by default from standard input) and sends
+them out in parallel to a remote nameserver. By default TCP/IP is used, but
+optionally, UDP is tried first, which allows for the benchmarking of TCP/IP
+fallback.
+
+The input format is one query per line: qname single-space qtype. An
+example:
+ www.powerdns.com ANY
+ powerdns.com MX
+
+When benchmarking extended runs, it may be necessary to enable TIME_WAIT
+recycling, as TCP/IP port tuples may otherwise run out. On Linux this is
+performed by running:
+
+ # echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
+
+The equivalent for IPv6 is not known.
+
+
OPTIONS
-------
-\r
--f,--file::\r
- Filename from which to read queries. Defaults to standard input if\r
- unspecified.\r
-\r
--h,--help::\r
- Provide a helpful message\r
-\r
---timeout-msec::\r
+
+-f,--file::
+ Filename from which to read queries. Defaults to standard input if
+ unspecified.
+
+-h,--help::
+ Provide a helpful message
+
+--timeout-msec::
Number of milliseconds to wait for an answer
--udp-first, -u::
- Attempt resolution via UDP first, only do TCP if truncated answer is\r
+ Attempt resolution via UDP first, only do TCP if truncated answer is
received
-\r
+
-v,--verbose::
Be wordy on what the program is doing
-\r
---workers::\r
- Number of parallel worker threads to use. \r
-\r
-\r
-Remote IP address can be IPv4 or IPv6. Remote port defaults to 53.\r
-\r
-STATISTICAL OUTPUT\r
-------------------\r
-The program reports both mean and median numbers for queries per second and\r
-UDP and TCP latency. Each query only counts once, even if it is tried over\r
-UDP first. This effectively means that passing '-u' can lower query rates if\r
-many queries get shunted to TCP.\r
-\r
+
+--workers::
+ Number of parallel worker threads to use.
+
+
+Remote IP address can be IPv4 or IPv6. Remote port defaults to 53.
+
+STATISTICAL OUTPUT
+------------------
+The program reports both mean and median numbers for queries per second and
+UDP and TCP latency. Each query only counts once, even if it is tried over
+UDP first. This effectively means that passing '-u' can lower query rates if
+many queries get shunted to TCP.
+
BUGS
----
-Currently the timeout code does not actually perform non-blocking connects\r
-or writes. So a slow connect or slow writes will still cause low\r
-performance and delays. \r
-\r
-Median queries per second statistics are reported as 0 for sub-second runs.\r
-\r
+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.
+
+Median queries per second statistics are reported as 0 for sub-second runs.
+
AUTHOR
------
Written by PowerDNS.COM BV, bert hubert, <bert.hubert@netherlabs.nl>