README file for
"DNSQUIZ" DNS Performance Test v1.3

George Breese, www.georgebreese.com
February 26 2005

License

This program is offered on an "as-is" basis. By using it, you absolve the author of all liability arising from its use. If a fee is charged to obtain or use this program, even as part of a larger service, you will forward the entire fee to the author of this program, George Breese. Contact information is available at www.georgebreese.com.

Summary

This program will test the performance of a DNS server, by sending a pattern of queries to the server and timing the server's responses.

Requirements

This program makes use of the Windows system file DNSAPI.DLL, which is supplied with Windows 2000 and XP and 2003.

This program requires an Internet connection.

How to use

In Windows, open a command prompt. Use CD commands to navigate to the directory containing DNSQUIZ3.EXE.

Run DNSQUIZ3.EXE, supplying the IP address of the DNS server to be tested. Example:

    DNSQUIZ3 4.2.2.2

will test the server whose IP address is 4.2.2.2.

By default, the DNSQUIZ program will test the server by looking up Internet addresses in the range of www.aaa.com to www.azz.com. For a more thorough test, include the word full on the command line.

    DNSQUIZ3 7.1.1.2 full

How to interpret results

Here is a sample of the program's output:

DNS Performance Test
Copyright 2000-2005, George E. Breese. All rights reserved.
Version 1.3  20050226
Performing full test: www.aaa.com to www.zzz.com
Testing performance of cached requests...
Results: min 33, average 36, max 41 milliseconds
Testing performance of uncached requests...
Press the Escape key to abort the test.
Results: min 55, average 259, max 4301 milliseconds
Statistics:
	16318 normal responses
	    0 network failures
	    3 server failures
	  255 cached responses

Cached results:

This test is useful as an indicator of how quickly the server responds when it is repeatedly asked for the addresses of popular web sites. In a busy network, many sites are accessed repeatedly by users, and the DNS server should deliver cached copies of this popular information quickly.

Testing performance of cached requests...
Results: min 33, average 36, max 41 milliseconds

These numbers are the result of repeatedly querying the server for a popular web site's address. First, the address of a popular site is requested from the DNS server. Then, several requests for the same information are sent. The DNS server will cache the information from the first request, and will supply it when the later requests arrive.

DNSQUIZ performs a total of eleven identical queries during this test. The performance of the first query is ignored. The performance of the other queries is averaged, and the result is displayed.

Uncached results:

This test shows how well the DNS server can retrieve unpopular queries, which can be the majority of queries in a large network.

Testing performance of uncached requests...
Press the Escape key to abort the test.
Results: min 41, average 259, max 4301 milliseconds

In this example, the server's cached responses deliver in around 36 milliseconds, and its uncached responses arrive in about 110 milliseconds. The ping time of the server is probably close to 36 milliseconds as well, which means that it is handling the requests in (110 - 36), or 74, milliseconds on average.

Statistics:

This is shown for informational purposes.

Statistics:
	16318 normal responses
	    0 network failures
	    3 server failures
	  255 cached responses

The "normal responses" are the successful uncached queries whose response time was greater than the maximum time of a cached response, but less than 5000 milliseconds. Responses that arrived in over 5000 milliseconds are discarded.

The "network failures" are the queries for which the DNS server could not obtain an answer from the Internet. In order to minimize these, a file called BADLIST.TXT is built by the program. The DNSQUIZ program reads this file and skips querying the addresses in it, and writes any new failures to the file for use in future sessions.

The "server failures" are cases where no response, or a badly-formatted response, was received from the DNS server being tested. These should be rare, but they can be a sign of an unreliable connection between the local PC and the DNS server.

The "cached" responses are those that were returned by the DNS server too quickly, and are assumed to be cached items. The "max" value from the cache test is used as the criteria. In a rare case, the "max" value may be unusually large, or the DNS server's Internet connection may be so fast, that DNSQUIZ may treat too many of the server's responses as "cached". Under most circumstances, the number should accurately reflect the items cached in the DNS server.

Comments

Since this test makes use of www.???.com addresses, it may be less useful outside the United States.

If the DNS server's cache can be flushed before starting this test, do so. In Windows, this can be done by stopping and restarting the DNS service.

If the DNS server's cache cannot be flushed in advance, repeated testing will show a high number of cached items. If so, wait up to 24 hours before retesting.

What numbers can be expected from a "good" DNS server? The answer is a complicated one. The sample output from DNSQUIZ in this document shows cached results in less than 40 milliseconds, and uncached results requiring less than 210 milliseconds of additional time. For a typical T1 subscriber, these are adequate results. But, a cable modem or T3 subscriber may expect their DNS servers to deliver cached results in much less time. Having said that, here are some sample results from Internet providers in February of 2005:

Address Internet provider(s) cached uncached
4.2.2.x Qwest, NetZero, Verizon DSL 26 2989
198.6.1.12x UUNet, MCI 100 2501
206.64.128.x DreamScape, Northland Communications, NY USA 37 2334
24.92.226.x Time Warner cable modem service 14 3460
206.13.30.x Pacific Bell DSL 108 382