《高性能网站建设》(10)--减少DNS查找

响应时间依赖于DNS解析器(通常由你的ISP提供),它所承受的请求压力,你与它之间的距离和你的带宽速度。

如何减少页面花在DNS查找上的时间很关键。

DNS缓存和TTL

DNS查找可以被缓存起来以提高性能

用户请求一个主机名之后,DNS信息会留在操作系统的DNS缓存中,之后对于该主机名的请求将无需进行过多的DNS查找,至少短时间内不需要。

浏览器的缓存和操作系统的缓存相分离

只要浏览器在其缓存中保留了DNS记录,它就不会麻烦操作系统来请求这个记录。

只有当浏览器缓存丢弃这个记录的时候,它才会向操作系统询问地址,然后操作系统或者通过其缓存来响应这个请求,或者将请求发给一台远程服务器,这时候就会发生潜在的速度降低。

影响DNS缓存的因素

1.服务器可以表明记录可以被缓存多久。查找返回的DNS记录中的TTL值(即Time-to-live)能告诉客户端可以对该记录缓存多久。

浏览器通常忽略TTL值并设置自己的时间限制。只要浏览器和Web服务器愉快的通信着(并保持TCP连接打开的状态)就不需要进行DNS查找。

2.浏览器对缓存的DNS记录有数量上的限制,而且不管缓存记录的时间。如果用户在短时间内访问了很多不同域名的网站,较早的DNS记录会被丢弃,此时必须重新查找。

避免使用过短的TTL值,选择较长的TTL值以减少DNS的查找并降低其名称服务器的负载。

浏览器的视角

Microsoft Windows上的DNS缓存由DNS Client服务进行管理,包括IE浏览器和火狐浏览器。

可以使用ipconfig命令来查看和刷新DNS Client服务

ipconfig/displaydns(查看)
ipconfig/flushdns(刷新)

这两个浏览器都有自身的DNS缓存。重启浏览器会清空浏览器缓存,但不会清空DNS Client服务缓存。

总结

<strong><em>通过使用Keep-Alive和较少的域名来减少DNS查找</strong></em>

当客户端的DNS缓存为空(浏览器和操作系统都是)时,DNS查找的数量与Web页面中唯一主机名的数量相等。这包括页面URL,图片,脚本文件,样式表,Flash对象等得主机名。

减少唯一主机名的数量就可以减少DNS查找的数量

减少唯一主机名的数量会潜在地减少页面中并行下载的数量。

避免DNS查找降低了响应时间,但减少并行时间可能会增加响应时间。

建议是将组件分别放到至少2个,但不要超过4个主机名下。这是在减少DNS查找和允许高度并行下载之间做出了很好的平衡。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,324评论 19 139
  • 目录: 一些基本概念主机名DNS名称解析DNS 解析的后端存储名称解析总结 大规模域名解析的体系架构DNS 解析需...
    C86guli阅读 14,300评论 3 34
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 8,201评论 0 7
  • 最近,终于要把《WEB请求处理系列》提上日程了,一直答应小伙伴们给分享一套完整的WEB请求处理流程:从浏览器、Ng...
    七寸知架构阅读 32,064评论 27 253
  • 凌晨一点,坐在病床边,听着各种监护仪器滴答滴答的声音,来来往往的急诊室,生命如此脆弱。从九点多接到电话手足无措慌张...
    柒不二酱阅读 2,675评论 0 0