By February 26, 2014 0 Comments Read More →

Performance: Slow Response–The Case Of Slow DNS Translation

During recent load testing we observed slow response with one of key web pages. Regardless of the load – single user or multiple users – the response time wasn’t of satisfactory and varied between 8 to 18 seconds depending on the environment.

To narrow down the problem we load tested only the web page in question. While under the load, we took memory dump using WinDBG following steps outlined in Performance: High CPU–The Case of Lack Of Caching And Dynamically Generated JavaScript Files.

Inspecting the call stack we have noticed the call to System.Net.Dns.GetHostEntry(System.Net.IPAddress). This triggered our thinking that DNS translation latency could be at play.

Quick search on the web revealed this post –

GetHostEntry is very slow, which pointed to DNSQueryTimeouts registry entry on TechNet. The registry entry doesn’t exist by default and it controls several timeouts related to DNS translation.

Ta validate our assumption – that the latency is caused by the DNS translation – we created the registry entry and configured the timeouts to minimum values and then re-run the load tests. Next thing you know the response times were directly affected and faster in half.

The decision was to remove this functionality altogether, since it was introduced to make the log entries look friendlier vs. just IP.


Posted in: Uncategorized

About the Author:

This blog is dedicated to share simple practices I that get me results.

Post a Comment