DNS Server Startup Time Improvements in Windows Server 2012 R2

Issue Summary

With the advent of cloud computing, there are more apps, more domains and more web services than ever. Every business needs its footprint on the world wide web. This led to a burst in the number of file backed zones being hosted on a single DNS server. In such a scenario, our tests indicated that for a very high number of zones the Windows DNS server took considerable amount of time to start up and load all the zones.

Fix

The Windows DNS Server team made changes to tackle this and has put following suggestions to get improved performance while loading file backed zones.

  • Update the Windows DNS server to get KB3038024
  • If all the zones on the server are file backed, then set the Boot Method to 2. This can be done using following cmdlet:

$a = Get-DnsServerSetting -all

$a.BootMethod = 2

$a | Set-DnsServerSetting

   Warning: Do not set the boot method to 2 if the DNS server hosts any Active Directory backed zone.

These fixes led to an improvement of the order of >10X in the zone load time performance. This fix will be automatically available in the Windows Server 10 (and its technical preview 2)

Test Results

Machine Configuration

The tests were performed on a physical machine deployed as an authoritative server with the following hardware configuration

Processor

Maximum Speed

2.30 GHz

 

 

 

 

 

 

 

Sockets

2

Cores

12

Logical Processors

24

Virtualization

Enabled

L1 Cache

768 KB

L2 Cache

3.0 MB

L3 Cache

30.0 MB

Total Physical memory

80GB

Network Card

Broadcom NetXtreme Gigabit Ethernet

Setup and Results

Following observations were made with and without the fixes. Improvements in the zone load time (or time taken to start the DNS service) were observed in a degree greater than 10X in case of servers hosting only file backed zones. The degree of improvement is not this high on servers with active directory backed zones. Note that these numbers have been generated in the test environment and the degree of improvement may vary from environment to environment. 

*All the zones in these tests were file backed and records were simple A records.

Zone Count

Total Number of Records

Service Restart time with boot method 3

Service Restart time with boot method 2

Without KB3038024

With KB3038024

Without KB3038024

With KB3038024

4,000 zones

(Reverse lookup)

40000

~30 mins

~4 mins

~25 mins

~2 mins

40,000 zones

(forward lookup)

4,000,000

 (4 million)

~20 mins

~3.5 mins

~15 mins

30 seconds

500,000 zones

(forward lookup)

25,000,000

(25 Million)

Not Measured

Not Measured

~4.5 days

~20 mins

1,000,000 zones

(forward lookup)

50,000,000

50 Million

>5 days

Not measured

>5 days

~25 mins