《高性能网站建设指南》阅读笔记_规则9- 减少DNS查找
来源:互联网 发布:老司机网站 知乎 编辑:程序博客网 时间:2024/06/02 07:35
首先解释几个名词:
DNS:大家都知道是域名系统
TTL值(Time- to - live,生存时间):
每个记录都有一个生存时间(TTL)值,这个值就决定了这个纪录什么时候刷新,进而被其他查询取代。在TTL到达之前,Windows解析将返回缓存中的查询结果,而不会开始新的DNS查询。
对美国10大网站的统计,他们发给用户的TTL从1分钟到1小时不等,这是由综合考虑和历史因素造成的。这些拥有巨大数量用户的顶级网站都在努力做到当服务器,虚拟ip地址(http://baike.baidu.com/view/711543.htm)或者联合定位掉线时提供快速故障转移,这也是yahoo提供较短的ttl的原因,但是Myspace则定位到一个联合定位工具,对于当前网络情况,故障转移不是很重要,因此使用较长的TTL以减少DNS查找,也降低了其名称服务器的负载。
DNS Client 服务-- --> 在操作系统客户端的配置:
可以使用控制台的IPConfig命令来观测缓存容量并清空缓存。
通过以下的命令就可以显示缓存的容量,并将结果传送给More指令,从而将结果一次性在一页中显示出来:ipconfig/displaydns
使用一下这个命令来清空缓存:ipconfig/flushdns
Keep-Alive: http构建在TCP上,在http的早期实现中,每个http请求都要打开一个socket连接,这样做效率很低,因为一个web页面中很多的http请求都指向同一个服务器。例如很多web页面中的图片发起的请求都指向一个图片服务器。持久连接的引入解决看多对一请求服务器导致socket连接低效性的问题。
浏览器自身也有其DNS缓存(如:IE、Firefox),而它们的配置要在注册表中修改。
每次重新启动浏览器也就自动清空了浏览器的DNS缓存,但它不会清空DNSClient 服务缓存。
Fasterfox(http://fasterfox.mozdev.org)是一款Firefox的插件,用于测量和改善Firefox的性能。
DNS将主机名映射到IP上,比如你输入www.taoche.com,连接到浏览器的DNS解析器会返回服务器的ip地址。一个url可以对应多个ip,比如我们的对应59.151.102.207、105、106
DNS解析也是开销,在DNS查找之前浏览器不能从主机名那里下载到任何东西(这一过程通常需要20到120毫秒),相应时间依赖于DNS解析器,他所能承担的请求压力,你与它之间的距离和你的带宽速度。实际中操作系统和浏览器做为缓存DNS查找记录,但是浏览器的Keep-Alive属性会覆盖操作系统的缓存过期时间。
我们可以发现,减少DNS查找和第六章所提到的“并行下载”是矛盾的,这方面做的最好的是google,它只有一次DNS查找,因为它页面中只有两个组件,所以也不存在影响并行下载的问题。我们的网站不可能只有两个组件,所以这里又需要一个权衡,本书作者建议使用最少两个,最多4个主机名来平衡。我们使用的是img1到4,4个,和作者的建议相符合。
综上所述:通过使用keep-Alive和较少的域名可以减少DNS查找。
- 《高性能网站建设指南》阅读笔记_规则9- 减少DNS查找
- 《高性能网站建设指南》阅读笔记_规则1-减少HTTP请求
- 《高性能网站建设指南》阅读笔记_规则2- 使用内容发布网络
- 《高性能网站建设指南》阅读笔记_规则3- 添加Expires头
- 《高性能网站建设指南》阅读笔记_规则4- 压缩组件
- 《高性能网站建设指南》阅读笔记_规则5- 将样式放在顶部
- 《高性能网站建设指南》阅读笔记_规则6- 将脚本放在底部
- 《高性能网站建设指南》阅读笔记_规则7- 避免CSS表达式
- 《高性能网站建设指南》阅读笔记_规则8- 使用外部javascript和css
- 《高性能网站建设指南》阅读笔记_规则10- 精简javascript
- 《高性能网站建设指南》阅读笔记_规则11- 避免重定向
- 《高性能网站建设指南》阅读笔记_规则12- 移除重复脚本
- 《高性能网站建设指南》阅读笔记_规则13- 配置ETag
- 《高性能网站建设指南》阅读笔记_规则14- 使Ajax可缓存
- 《高性能网站建设进阶指南》阅读笔记 1
- 《高性能网站建设进阶指南》阅读笔记 2
- 《高性能网站建设进阶指南》阅读笔记 3
- 《高性能网站建设指南》笔记
- 数组最大值JS版
- 滑动锚点+div+js
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
- iphone4的修改host的步骤
- 我的第一篇博客+程序员的十层楼
- 《高性能网站建设指南》阅读笔记_规则9- 减少DNS查找
- lftp上传下载限速
- groovy的错误
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- ubuntu12.04 64bit 常见问题
- C语言:指针的三道编程练习
- Complete Search
- HDU 1241 Oil Deposits DFS入门
- 回归结对编程