summaryrefslogtreecommitdiffstats
path: root/contrib/queryperf/README
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/queryperf/README')
-rw-r--r--contrib/queryperf/README82
1 files changed, 82 insertions, 0 deletions
diff --git a/contrib/queryperf/README b/contrib/queryperf/README
new file mode 100644
index 0000000..a1e0c62
--- /dev/null
+++ b/contrib/queryperf/README
@@ -0,0 +1,82 @@
+
+$Id: README,v 1.1.1.1 2001/07/12 02:02:09 gson Exp $
+
+This is queryperf, a DNS server query performance testing tool.
+
+It is primarily intended for measuring the performance of
+authoritative DNS servers, but it has also been used for measuring
+caching server performance. This document describes the use of
+queryperf for authoritative server performance testing.
+
+
+Building
+
+To build queryperf, just do
+
+ sh configure
+ make
+
+
+The test environment
+
+It is recommended that you run queryperf and the name server under
+test on separate machines, so that the CPU usage of queryperf itself
+does not slow down the name server. The two machines should be
+connected with a fast network, preferably a dedicated 100baseT
+segment. Testing through a router or firewall is not advisable.
+
+
+Configuring the server
+
+The name server under test should be set up as an authoritative
+server, serving one or more zones similar in size and number to
+what the server is expected to serve in production.
+
+Be sure to turn off recursion in the server's configuration
+(in BIND 8/9, specify "recursion no;" in the options block).
+In BIND 8, you should also specify "fetch-glue no;"; otherwise
+the server may attempt to retrieve glue information from the
+Internet during the test, slowing it down by an unpredictable
+factor.
+
+
+Constructing the input file
+
+You need to construct a queryperf input file containing a large and
+realistic set of queries, on the order of ten thousand to a million.
+The input file contains one line per query, consisting of a domain
+name and an RR type name separated by a space. The class of the
+query is implicitly IN.
+
+When measuring the performance serving non-terminal zones such as the
+root zone or TLDs, note that such servers spend most of their time
+providing referral responses, not authoritative answers. Therefore, a
+realistic input file might consist mostly of queries for type A for
+names *below*, not at, the delegations present in the zone. For
+example, when testing the performance of a server configured to be
+authoritative for the top-level domain "fi.", which contains
+delegations for domains like "helsinki.fi" and "turku.fi", the input
+file could contain lines like
+
+ www.turku.fi A
+ www.helsinki.fi A
+
+where the "www" prefix ensures that the server will respond with a
+referral. Ideally, a realistic proportion of queries for nonexistent
+domains should be mixed in with those for existing ones, and the lines
+of the input file should be in a random order.
+
+
+Running the tests
+
+Queryperf is run specifying the input file using the "-d" option, as
+in
+
+ queryperf -d input_file -s server
+
+The output of queryperf is mostly self-explanatory. Pay attention to
+the number of dropped packets reported - when running the test over a
+local Ethernet connection, it should be zero. If one or more packets
+has been dropped, there may be a problem with the network connection.
+In that case, the results should be considered suspect and the test
+repeated.