倒计时进行到一半时,一个沙漏和蓝色的沙子停在一些岩石上。

不同cdn的DNS缓存/TTL比较

选择正确的内容交付网络(CDN)可以帮助访问者避免为几乎从未发生过的事情支付性能成本。

生存时间(TTL)是客户端和中间DNS解析程序可以缓存和重用相同的DNS响应而无需进行另一次查找的秒数。更长的缓存时间意味着更少的重复(大部分时间是冗余的)查找,更少的查找意味着更好的性能。

我已经比较预算CDN提供商在此之前,您可以为市场上的每个CDN提供商找到许多单连接性能测试指标。然而,我找不到任何已发布的指标来比较budget和一些市场领先的CDN提供商使用的DNS生存时间值。

我已经收集了一些最流行的和一些预算CDN提供商返回的TTL(以秒为单位):

姓名 活下去的时间
白鲸 600个
邦尼川 35岁
CDN77号 1个
恩森 180
云耀斑 300个
快速地 30个
键控数字网络 60个
30个
微软Azure 60个

当我调查的时候客户端DNS缓存,可以假设web浏览器将DNS查询缓存至少15秒。不过,大多数人会将其缓存一到两分钟。理想情况下,最小的TTL应该至少与大多数访问者的会话一样长;确保他们在访问您的网站期间不需要执行多个DNS查找。

当部署常规的pull CDN(反向代理)时,网站所有者使用CNAME公司指向CDN提供程序操作的另一个域的记录。网站可以优化其查找过程的结尾(CNAME公司通过确保它有一个长的TTL。但是,由CNAME公司由返回实际一个AAAA级记录并设置其TTL时间。

TTL不仅可能影响辅助请求,而且还可能影响初始加载时间,因为给定的DNS缓存更有可能已经使用更长的TTL缓存了以前的DNS记录。快速的成本效益分析,将TTL从半分钟增加到十分钟,在极少数情况下,您可能会面临长达十分钟的停机风险,但每天的页面加载时间会减少100-400毫秒。

那么,为什么大多数提供商都设置了这么短的ttl呢?他们的服务级别协议可能保证一定的启动时间,他们可能不信任自己的基础设施抵御分布式拒绝服务(DDoS)攻击的能力,他们可能过度依赖基于DNS的负载平衡,或者他们可能不太关心性能。换句话说,一个难以置信的好的服务水平协议(SLA)可能会以牺牲网络性能为代价。

在性能和服务提供商产品的预期可靠性方面,TTL低于至少几分钟应该是一个危险信号。

“很多网站和互联网服务在它们的DNS记录上使用的生命周期非常短。他们这样做是因为如果一个数据中心坏了,他们希望能够更新DNS,并非常迅速地将流量引导到另一个数据中心。

这种方法的问题是,你要为几乎从未发生过的事情付出性能成本。数据中心很少倒闭。”

Stuart Cheshire,714期,苹果WWDC 2018