51CTO技术论坛_中国领先的IT技术社区's Archiver

danni505 发表于 2006-8-18 21:13

ternet 快些走 Cache 是个好帮手 - 网页中的 cache 技术

随着Internet应用的日益广泛,如何增强基于Internet应用程序的性能颇令人头疼。因为人们发现仅仅依靠有限地增加Internet的接入速率并不能带来预期的效果。问题出在访问Internet信息时存在延迟,这个延迟是由许多综合因素造成的。如网上Web服务器的拥塞、Internet上众多路由器带来的数据延迟、以及数据通过光纤主干传输时物理传输极限带来的延迟等等。

    举个例子:若一个网页上有10幅图像,则在Internet传输时需传11个对象,一个HTML文档加上10个图像。在真正的传输开始之前还有一个域名解析用以确定网页的IP地址,然后每个对象需要完成一个TCP和一个HTTP来回传输过程,用来完成从Web服务器到客户端的信息传送。

    那么,整个网页将需要一个域名解析时间和22个来回通信的时间才能传输完毕。即使忽略所有的网络设备及Web服务器造成的延迟,而且假定接入带宽非常之宽,不考虑由于Internet接入速率即窄带宽带来的延迟,仅仅考虑光信号在光纤中的物理传输极限,即100000英里/秒。假设此网页从美国东海岸传输到西海岸,则整个网页需1秒左右的时间才能传完。若加上网络设备的延迟,至少也得需要5秒钟的时间。这个例子说明了在超长距离的Internet传输上,即使高带宽也不能避免因物理传输极限而造成的必然延迟。

    既然这些延迟是由物理传输极限造成的,那么显而易见的解决办法就是使网页尽可能地靠近浏览器,通过减少传输距离来缩短传输所需的时间。而且,这样同时可以减少Internet上的其它各种因素造成的延迟,大大加快了下载网页的时间。这就是使用Cache(缓存)的基本出发点,也是其最基本的理论基础。

    其实Cache技术已在计算机设计领域使用了许多年了,它把常用的数据存放在最靠近处理器的地方,用以避免在相对低速的数据传输路径或存储设备上产生延迟甚至出现瓶颈。把Cache技术运用到Internet数据传输上,客户端的浏览器就相当于计算机体系中的高速处理器,而整个Internet则相当于计算机体系中的低速存储设备或数据传输路径。

    ◆Cache服务器节省带宽目前流行的浏览器如IE4.0及NetscapeCommunicator4.0都带有Cache的功能,但这种浏览器级别的Cache有一定的局限性,当两个或更多的同一局域网上的用户访问同一Internet网页时,并不能共享已下载的信息,即每个用户都必须到同一Web服务器上去下载同一网页。这样消耗了大量的时间并且占用了本来就很紧张的带宽资源。因此,Cache服务器应运而生,它通过设置在局域网中的一个Cache服务器,把第一个用户从InternetWeb服务器上下载的内容复制一份并存储在Cache服务器上。当后续的用户申请相同的内容时,Cache服务器直接把刚才存储的内容传送给用户,大大加快了传输时间,增加了浏览的性能并提高了工作效率,同时节省了带宽资源。

    ◆Cache也不是十全十美有两个主要的原因促成了网络中采用Cache服务器:使带宽的使用更加有效,使基于浏览器的应用程序性能得到增强。若您的网络正受到Internet接入带宽的困扰,那么Cache服务器将能提供一个经济的途径来解决带宽紧张的问题,而且并不需要花费升级Internet接入的昂贵费用。Cache服务器还能增强浏览器的性能,这对于那些基于IP的Intranet应用更显得重要。

    虽然Cache能带来上述那么多的好处,但它并非毫无缺陷。其中一个问题就是如何解决信息的动态更新。因为所申请的Internet访问信息都从Cache服务器中取得,那么就很有可能错过那些变化很快的信息。最新的Cache服务器产品提供了防止动态网页被缓冲的方法。Cache将那些带有标志性字符或字目录名的URL认为是动态网页而不予理睬,即不通过Cache而直接发往Internet上的Web服务器取得信息。这些标志如:/cgi-bin/或?.,若网上信息发布者担心他们的网页因被缓冲而影响动态更新,则可以在所有网页开始处设置Expires=0,用来阻止Cache功能起作用,告诉Cache服务器本网页内容需实时更新而不必存入Cache。

    即使所有的动态HTML文档都不能被缓存,Cache技术仍有它的一席之地。研究表明,在Internet上传送最多的内容就是静态内容如代表公司的标志图案等,70%包含图像和文档的网络信息都能被缓存。

    Cache服务器必须面对的另一个问题是信息提供者担心Cache的运用会影响网站的访问率统计,造成统计得到的访问率下降,影响统计数据的精确度,而且许多广告内容恰恰最需要精确的访问统计数目来计算所需费用。所以这个问题必须得到满意的解决。一个方法就是如前所述的在网页开始处申明Expires=0。但这样所带来的负面影响是浏览性能的大幅度下降,而且增加了Web服务器的负担,因为所有的访问申请都直接发送到了Web服务器。一个最新的解决方案就是在网页中嵌入很小的而且不能被缓存的对象,它们把对网页的访问申请重定向于统计网页访问率的脚本上,使网页内容被缓冲的同时还保证了访问数量统计的准确性。另外一些产品,如DynaCache,包含了一个访问报告特征,即在一个对象从Cache中存取后,Cache发送一个访问报告给相应的Web服务器,这样同样可使信息被Cache的同时保证访问数量统计的准确性。

    ◆怎样选择最好的Cache

    有三种评估Cache性能优劣的方法:击中率、数据缓冲率以及平均响应时间。击中率是通过比较被Cache服务器成功缓存的Internet访问申请次数与发往Cache服务器的申请总数之比。类似的,数据缓冲率是通过比较从Cache服务器中读出的数据量与浏览器访问到的总数据量之比。而第三种方法,即平均响应时间,是直接从Web服务器读取网页的时间与从Cache中读出相同内容所需时间之比。

    其中,击中率和数据缓冲率相对来说比较容易从Cache服务器的日志文件中取得,而平均响应时间只能在实际环境中去估计。

    影响Cache服务器性能的两个主要因素是用户群的大小和Cache存储量的大小。当用户群数目增加时,多个用户申请同一网页的可能性就相应地增加了;同样,更大的Cache存储空间就能够容纳更多的网页,从而增加访问申请出现重复的几率,相应的击中率也就增加了。

    研究表明,要达到30%的击中率相对来说是比较容易的,而若要取得50%以上的击中率,则需要更大的用户群和更大的Cache存储空间。数据缓冲率通常要比击中率低10%左右,这表明小的内容更容易被缓存。

    没有HTTP缓存时,每个用户必须从源服务器搜索Web目标。把缓存放置在Internet网关上,让内部用户在局域网内搜索经常访问的对象,这样减少了带宽的消耗,提高了应用的性能。

               权威述评--Cache提高网络效率---Cisco系统(中国)公司电信市场经理季平

    Internet/Intranet的应用已经渗透到我们工作、学习和生活的每一方面。网络帮助我们做得越多,我们的期望就越高,“不满”和“需改进”的方面自然也会越多。很多时间,网络延迟就是令我们头疼的事情。网络用户最强烈的要求之一就是提速。提到Internet提速,人们最多会想到的是网络传输带宽的加大,路由器容量的扩充,或是用户接入设备的改善,像56KModem升级、改用ADSL或CableModem等。但是,一项投入少、见效快、灵活方便的方式却往往被大家忽视,这就是Cache技术。

    Cache技术不是着眼于网络硬指标的提高,而是在更深一个层次上分析用户数据流的统计特征,巧妙地利用信息的可“盗版”复制性和可共享性,在最佳地点复制和保存供大家使用的信息,减少对网络瓶颈设备和高延迟设备的依赖从而提高用户的使用效率。可以说Cache是向管理要效益的典型代表。因此,在Cache的选择和使用上,我们要更多地获得原始数据,更仔细地分析,从而得出最佳实施方案。因为同样的网络,同样的Cache设备,对不同的用户应用环境,Cache的应用效果会有很大差别。

    Internet/IntranetCache的发展,除了技术本身的因素以外,开放和标准协议也是一个重要的方面。网络路由器要通过特定协议与Cache设备之间协议的兼容性,直接决定了Cache设备能否入网使用。作为Internet/Intranet领先的设备和解决方案供应商,Cisco在路由器和Cache设备方面都居先进水平。为了更好地促进Internet/Intranet的发展,Cisco已经宣布将的WebCacheCommunicationProtocol(WCCP)全面开放,使第三方Cache厂家能够将独立开发的Cache设备连接到用Cisco路由器组成的Internet/Intranet。Cisco的这一承诺无疑为Cache设备在以Cisco路由器为主的Internet/Intranet网络上广泛应用提供了方便。

yjy191653718 发表于 2007-8-2 18:05

感谢分享!!!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.