• Home
  • History
  • Annotate
  • only in this directory
NameDateSize

..24-Apr-201416

config.h.inH A D27-Aug-20091 KiB

configureH A D12-Jul-2012119.7 KiB

configure.inH A D12-Jul-20122.1 KiB

input/H24-Apr-20144

Makefile.inH A D27-Aug-2009603

missing/H24-Apr-20145

queryperf.cH A D12-Jul-201249.2 KiB

READMEH A D12-Jul-20122.9 KiB

utils/H24-Apr-20143

README

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