DNS解析时间与访问量 TTL的关系

大家在维护DNS的时候会有一个烦恼,很难平衡几个点
1. 域名的平均解析时间要很短
– 因为网站访问的时候所有得请求都需要依赖DNS解析,如果网站的访问量小,用户每次请求时需要先等递归DNS递归,整体的时间会很长。
2. 机房故障的时候切换要快
– 有多IDC的人都会面临一个问题,单个IDC故障的时候希望能尽快通过DNS将流量切换到另外的一个IDC,这个时候需要TTL短。
3. DNS的部署成本
– 正常网站的dns其实都不大的,如果没有攻击,4个机器跑个bind也能支撑国内BAT的一起的DNS解析。
– 如果我们希望DNS的解析效果好,就需要在部署位置、接入网络等各方面想办法优化,成本也是指数增加。

不同频率的DNS解析任务来统计DNS的解析时长,可以分析一下网站访问量,域名TTL和用户侧平均DNS解析耗时之间的一些关系。


上图是相同TTL的域名,在访问频率不同的场景下的对比,可以看出随着监控域名的解析频率从1分钟下降到5分钟一次后,DNS的解析时间从66ms增加到85ms。

再从相同监控频率,不同TTL的解析这个维度来看

随着TTL从60s提升到120s,DNS的平均解析时间从66ms下降到59ms。

再看看当TTL提升到600s的时候,DNS的平均解析时间下降到 47ms左右。

基于以上场景对比,我们可以有结论:
1. TTL适当增加,DNS的延迟可以大幅下降。
2. 网站访问量的增加,DNS延迟也可以有大幅下降。

DNS在用户终端的平均解析时间其实很难对比,也不存在完美的最佳实践。对一般中小企业,建议:
1. DNS的TTL 300-600S,如果访问量不是很大,不建议TTL下降到120以下。
2. 机房切换的容忍时间5-10分钟。

此条目发表在dns分类目录。将固定链接加入收藏夹。

DNS解析时间与访问量 TTL的关系》有4条回应

  1. 说:

    ttl可卸载机制来解最科学了,平时有ttl,容灾时去掉ttl

    • pm说:

      容灾的不可预期的,否则就不叫容灾了,因此只能根据自己的实际情况做权衡。

      • 说:

        我的意思是,如果有技术可以在容灾的时候快速摘掉 TTL ,像手动 flush 一样,就很好了。

        • pm说:

          没有这样的技术,非技术的手段就是找各大运营商的人帮忙刷cache,然后google 公共DNS之类的可以自助刷cache的。

发表回复