HowFast / roadmap

Open roadmap for HowFast
https://www.howfast.tech/
4 stars 0 forks source link

Use a local resolver instead of relying on the provider's DNS servers #9

Closed MickaelBergem closed 6 years ago

MickaelBergem commented 6 years ago

DNS resolution time is sometimes quite variable, while being usually out of control from the user / tracked server. I propose using a local resolver, controlled by HowFast, to maintain a quality and consistency in response times.

impact-dns-inconsistent

Important note: while using the provider's (or public) resolvers is closer to what a real user will experience, such records are usually cached by the browser or HTTP clients (and not in HowFast pings), so this "realism" is not very efficient at assessing the performance of an application. The average time spent resolving DNS will still be linked to the record's TTL, as small TTLs will lead to the local resolver asking authoritative servers more often, thus taking more time. This behaviour is nevertheless shared by all the targets monitored: the TTL expiration will only cause one monitor to record the increased resolution time, while others will not see any difference. This behaviour is deemed acceptable, since maintaining one DNS cache per monitor makes little sense.

image

MickaelBergem commented 6 years ago

A local resolver is now used on the production server. There is no visible difference yet, I will wait for tomorrow to see if there is any visible trend.

MickaelBergem commented 6 years ago

Thanks to another performance update, the time spent resolving domain names dropped spectacularly. DNS records are cached locally, and we now rely on our provider's resolver for queries on expired records only.

image