Microsoft DNS server keeps track of a number of server usage statistics and displays these statistics in the right pane of the DNS Manager window. These statistics are cumulative; in other words they are started when the DNS server is started and are not cleared until the DNS server is stopped.
These statistics are useful for comparing relative name query traffic and load on each DNS server to determine how many name queries each DNS server is servicing. If one DNS server is busier than other DNS servers, you can direct some of the name query traffic away from the overloaded server to another server that is not as heavily loaded. For example if you have a primary and two secondaries, you can balance the load on the primary by configuring some of the DNS clients to point to one DNS secondary and other clients to point to the other DNS secondary. This reconfiguration can be done by using the DHCP server to change the DNS server which DHCP clients are configured to use, or by manually reconfiguring TCP/IP on non-DHCP enabled clients.
For capacity planning purposes, it is important to periodically compare the level of growth in usage of the DNS server versus the memory, disk, network, and CPU capabilities of the computer running the DNS server. If you feel that a DNS server is not responding as fast as it should, look first at the following performance monitor counters on that server. If any of the thresholds described in the following table are being met, there may be room to improve performance on the DNS server.
Table 9.3 Using Performance Monitor Counters to Monitor DNS Server
Object | Counter | Threshold | Notes |
processor | %processor time | > 80% | |
memory | available bytes | < 1 MB | |
physical disk | %disk time | > 67% | only available if you start the counters from the command line with diskperf -y, and reboot |
network segment | % network usage | > 40% | only available if Network Monitor Agent is installed |
If memory is an issue, then check the 'process' object, 'DNS' instance, 'Private Bytes' counter. If this counter is high, then the DNS service is causing the memory available bytes counter to be low. If this is the case, add more memory or possibly investigate which records are currently active in the DNS cache and find out the TTL associated with each.
If processor is an issue , check the 'process' object, 'DNS' instance, '%processor time' counter. If this is > 80 %, consider running the DNS server on a more powerful server. If this is not high, and processor '%processor time' is still high, look at all the other processes and determine which process is requiring large amounts of CPU time.
On a DNS server, physical disk '%disk time' should not be a problem, unless the system has started paging for lack of memory. If this is the case, treat this as a memory issue.
If network use is a problem, find out if it is the DNS server that is causing all of the traffic or another server on the same segment. To do this, use the Network Monitor utility to examine the traffic that is received and sent by the server.
Microsoft DNS server cache memory is different than processing of resource records. Virtual (pageable) memory is allocated for cached data as needed (remember, as a DNS server performs name resolution for a name query, it caches a copy of the data which is retained for the time period specified by the TTL). If the DNS server requires more than the normal amount of cache memory, this memory is taken from the local computer page file and is usually slower than cache memory.