etc/services - sync with NetBSD-8
[minix.git] / external / bsd / bind / dist / contrib / queryperf / README
blobd8cc0eb1f715a8265208903b61d42a60eea0b757
2 Id: README,v 1.1 2001/07/12 02:02:09 gson Exp 
4 This is queryperf, a DNS server query performance testing tool.
6 It is primarily intended for measuring the performance of
7 authoritative DNS servers, but it has also been used for measuring
8 caching server performance.  This document describes the use of
9 queryperf for authoritative server performance testing.
12 Building
14 To build queryperf, just do
16   sh configure
17   make
20 The test environment
22 It is recommended that you run queryperf and the name server under
23 test on separate machines, so that the CPU usage of queryperf itself
24 does not slow down the name server.  The two machines should be
25 connected with a fast network, preferably a dedicated 100baseT
26 segment.  Testing through a router or firewall is not advisable.
29 Configuring the server
31 The name server under test should be set up as an authoritative
32 server, serving one or more zones similar in size and number to
33 what the server is expected to serve in production.
35 Be sure to turn off recursion in the server's configuration 
36 (in BIND 8/9, specify "recursion no;" in the options block).
37 In BIND 8, you should also specify "fetch-glue no;"; otherwise
38 the server may attempt to retrieve glue information from the
39 Internet during the test, slowing it down by an unpredictable
40 factor.
43 Constructing the input file
45 You need to construct a queryperf input file containing a large and
46 realistic set of queries, on the order of ten thousand to a million.
47 The input file contains one line per query, consisting of a domain 
48 name and an RR type name separated by a space.  The class of the 
49 query is implicitly IN.
51 When measuring the performance serving non-terminal zones such as the
52 root zone or TLDs, note that such servers spend most of their time
53 providing referral responses, not authoritative answers.  Therefore, a
54 realistic input file might consist mostly of queries for type A for
55 names *below*, not at, the delegations present in the zone.  For
56 example, when testing the performance of a server configured to be
57 authoritative for the top-level domain "fi.", which contains
58 delegations for domains like "helsinki.fi" and "turku.fi", the input
59 file could contain lines like
61   www.turku.fi A
62   www.helsinki.fi A
64 where the "www" prefix ensures that the server will respond with a
65 referral.  Ideally, a realistic proportion of queries for nonexistent
66 domains should be mixed in with those for existing ones, and the lines
67 of the input file should be in a random order.
70 Running the tests
72 Queryperf is run specifying the input file using the "-d" option, as
75   queryperf -d input_file -s server
77 The output of queryperf is mostly self-explanatory.  Pay attention to
78 the number of dropped packets reported - when running the test over a
79 local Ethernet connection, it should be zero.  If one or more packets
80 has been dropped, there may be a problem with the network connection.
81 In that case, the results should be considered suspect and the test
82 repeated.