首页/云/云网络与负载均衡速查/DNS TTL 与生效时间
云 DNS 与 CDN49 条

DNS TTL 与生效时间

TTL 是记录在各级缓存中的存活秒数:值越小变更收敛越快、权威查询压力越大;越大缓存友好但变更生效更慢。计划切换类变更时,提前把关键记录 TTL 调低,完成后恢复。

TTL 是什么

TTL 是解析记录在各级缓存中允许存活的秒数:递归解析器拿到答案后会在本地保留这么久,期间再次查询直接返回缓存结果。值越小,变更后各地收敛越快,但权威服务器承受的查询压力越大;值越大缓存友好,但变更生效更慢。计划切换类变更时,提前把关键记录的 TTL 调低,完成后再恢复。

基本信息

作用控制记录在缓存中的存活时长(单位:秒)
调低场景计划迁移、切换地址、故障切换类记录
调高场景稳定业务,减少权威侧查询压力
最小值限制免费版解析通常有最低 TTL 限制,付费版可更小
边界已经缓存的旧记录只能等待其自然过期
观察方式dig 输出中 ANSWER 段的数字即当前剩余缓存时间

典型使用场景

  • 域名迁移或换 IP 前,提前把 TTL 下调到较小值以缩短收敛窗口
  • 灰度切换:让部分地区的递归先拿到新地址,观察效果再全网推进
  • 故障切换场景需要分钟级收敛,记录平时就保持较小 TTL
  • 稳定业务记录把 TTL 调大,减少权威服务器压力与查询成本
  • 验证类临时记录设较短 TTL,用完即删,避免残留影响

观察当前 TTL

观察当前 TTL
dig www.example.com | grep -E 'IN' | head -5
# 输出中的数字为该条记录当前剩余的缓存时间
dig @8.8.8.8 www.example.com +noall +answer   # 从公共递归视角看剩余 TTL
# 连续两次查询 TTL 递减:说明命中的是缓存而非每次回源

TTL 取值参考

场景TTL 思路原因
计划切换前提前下调(如 60~300 秒)缩短旧值在各地缓存中的停留时间
切换完成后逐步恢复为常规值降低权威查询压力
故障切换类记录长期保持较小值切换需要分钟级收敛
稳定业务记录较大值(如数小时到一天)缓存命中率高,权威压力小
临时验证记录较小值用完即删,避免影响后续配置
下调 TTL 必须提前:如果缓存里已经存着旧的高 TTL 记录,改小配置不会影响这条已缓存记录,只能等它自然过期。
切换前忘记调低 TTL 时,部分地区的客户端可能在被引用较长时间后才收敛到新地址,期间新旧地址同时有流量,回滚判断会被干扰。

易错点

  • 切换前未调低 TTL,旧地址长期仍有流量,容易误判为「切换失败」而反复修改配置
  • 把 TTL 当成即时生效开关,忽略递归缓存:配置已改但各地返回仍旧值属于正常现象
  • 所有记录统一设很小值,权威查询量明显上升,还可能触发免费版解析的查询限制
  • 只调整了主记录而忽略 CNAME 链上的其他记录,整条链路收敛时间由最长的那一段决定

数据来源与参考

  • 阿里云 云解析 TTL 说明
  • 腾讯云 DNSPod TTL 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌