高性能网站建设指南(九)减少DNS查找
in Blog
Internet是通过IP地址来查找服务器的。由于IP地址很难记忆,通常使用包含主机名的URL来取代它,但当浏览器发送其它请求时,IP地址仍然是必须的。这就是DNS(Domain Name System)所处的角色。
DNS缓存和TTL(DNS Caching and TTLs)
DNS查找可以被缓存起来以提高性能。浏览器对缓存的DNS记录的数量也有限制,而不管缓存记录的时间。 查找返回的DNS记录包含一个存活时间(TIme-to-live,TTL)值。该值告诉客户端可以对该记录缓存多久。TTL建议值为1天,避免使用过短的时间。
Keep-Alive(持久连接),默认情况下,一个持久的TCP连接将会一直使用,直到其空闲1分钟为止。由于连接是持久的,因此无需DNS查找。另一个优点,Keep-Alive通过重用现有连接避免了重复的DNS查找。
当客户端的DNS缓存为空(浏览器和操作系统都是)时,DNS查找的数量与Web页面中唯一主机名的数量相等。这包括页面URL、图片、脚本文件、样式表、Flash对象等的主机名。减少唯一主机名的数量就可以减少DNS查找数量。随之也会潜在地减少页面中并行下载的数量。避免DNS查找降低了响应时间,但减少并行下载可能会增加响应时间。
建议是将这些组件分别放到至少2个,但不要超过4ge主机名下。这是在减少DNS查找和允许高度并行下载之间作出很好的权衡。