Web缓存技术研究与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web缓存技术研究与应用
摘要:文章详细阐述了web缓存技术的原理,研究了在具有web 缓存器的网络中本地存储器对请求对象拷贝传送的过程,深入讲解了web缓存替换的思想,以及利用web缓存如何有效的降低网络业务流量,缓解网络拥塞等问题。
关键词:网络;流量;缓存;服务器
中图分类号:tp393 文献标识码:a 文章编号:1007-9599 (2012)18-0000-02
1 引言
近年来,伴随着网络的飞速发展,越来越多的用户接入到因特网中,使网络承载的业务量越来越繁重,网络流量呈爆炸式增长。据统计因特网的上网用户和业务量几乎平均每6个月就翻一番,网络的应用以前所未有的速度增长。用户对web服务器的访问量过大,导致系统难以承受其压力,如何缓解网络中业务流量的增长,减小访问时延,提高网络性能等一系列问题逐渐成为人们关注的焦点。
2 web缓存
web缓存正是缓解这一矛盾的有效技术手段。web缓存技术采用信息本地化的机制,将缓存器布置于距客户端较近的位置,把客户端最近请求过的对象的拷贝保存到本地缓存器中。采用web缓存技术可以降低对初始服务器的访问压力,缩短用户发送请求时由于需要到达初始服务器而产生的信息传输距离和时延。
3 web缓存技术的原理
那么,web缓存技术的工作原理是怎样实现的,我们看一下客户端浏览器对一个对象的请求过程。当浏览器准备请求一个对象时,首先浏览器与web缓存器之间建立一个tcp连接,客户端浏览器向web缓存器中的对象发送一个http请求。web缓存器将检查本地磁盘空间中是否对该对象的拷贝进行了存储,如果在本地存储空间中找到了该对象的储存副本,则web缓存器就用http响应报文将该对象的拷贝发送给客户端浏览器,这时的web缓存器就相当于初始服务器,因为在这个过程中web缓存器具与初始服务器同样的功能,接收了浏览器的请求,并发回了http响应报文。当web缓存器在本地存储空间中未找到该请求对象的存储副本,它就会与该对象的初始服务器建立tcp连接,web缓存这时就相当于客户端浏览器。它会向初始服务器发送获取该对象的http请求,初始服务器在接到请求后,将请求的对象发送给web缓存器。web缓存器接收到该请求对象后,在本地存储器中保存该对象的副本,利用与客户端浏览器已经建立起来的tcp连接发送拷贝对象到客户端浏览器,如有其他用户再次请求该对象时,web缓存器就可以从本地存储中直接提取最初从初始服务器中请求的该对象的拷贝,由web缓存器直接发送给用户执行初始服务器的功能。从web缓存器工作的过程我们看到,web缓存器既是客户端又是服务器。
4 web缓存替换
web缓存空间是有限的,随着时间的推移,缓存中剩余的空间将不足以存储新的请求对象,先前储存过的一些拷贝对象将与初始服
务器内存储的刚刚更新过的对象产生差异。为了更好的利用有限的存储资源,web缓存器会保留价值较高的访问对象,将价值较低的访问对象移出缓存,以便存储当前更具有价值的信息。缓存替换的方法一般会基于以下几种思想:
4.1 基于用户访问时间的间隔
最近一次用户访问某个对象的时间离现在越远,今后该对象被访问的可能性也就越小,越适宜被替换。基于这种思想在web缓存中可以根据用户请求对象的时间间隔长短作为缓存替换的依据。在web缓存器中请求间隔小的对象在某种意义上代表着这个请求对象在将来被其他用户再次请求的机会也更大。依据这一原则,web缓存器可以根据缓存器中实际剩余空间的大小,把请求时间间隔大的文件信息替换掉,按照请求时间长短依次淘汰那些请求时间间隔相对较大的信息资源。
4.2 基于用户访问频率
最近被访问过的对象在将来一段时间内被访问的命中率会较大,从web缓存中移出命中率较小的对象拷贝,保留命中率相对较高的访问对象的拷贝,将访问对象的命中率作为缓存替换依据。
用户请求对象的命中次数与用户请求对象的总数之比为命中率,命中率是衡量缓存性能的一个重要指标。当一个用户发出http 请求时,这次请求的对象数据正好已经在web缓存器中存储,我们称这样的请求过程为一次“命中”,命中对象说明这个请求对象先前曾被用户访问过。在实际的访问过程中,一些实时性很强的对象
虽然在当时具有较高的命中率,但是经过一段时间以后,已经变得不再具有被访问的价值。web缓存空间不可能无限制的增大,如果一直将这些对象保存在缓存中,会导致缓存空间的浪费,所以在有限的空间条件下,必须从缓存空间中淘汰一些存储价值较低的缓存数据来提高命中率,保障web缓存器的服务性能。
4.3 基于对象大小
当缓存剩余空间较小时,仅简单的考虑存储对象大小,当发生对象替换时,将容量最大的存储对象从缓存空间中移出。这种思想是基于在缓存中移除更多的空间去存储一些容量小而数量大的请
求对象,这样有可能提高命中率,因为将最大的对象移出缓存之后,会有更多的空间容纳其他请求对象供用户去访问。
4.4 基于前缀缓存技术
web磁盘缓存容量有限,完整的存储大容量的视频文件将占用缓存极大的空间。据研究分析,用户在使用流媒体服务时,并不是观看了整个视频文件,很大一部分用户是观看了视频文件的前一部分,而能一直观看完该视频文件的用户却很少。在这种情况下几乎不会被访问到的视频后半部分文件占用了大量的缓存空间,对缓存空间造成了极大的浪费。前缀缓存技术就是将视频文件的前一部分片段保存于缓存中,而后续的片段可以在用户观看视频片段前部分的同时通过web缓存器向初始服务器发送请求而后获得,前缀缓存技术在未牺牲服务质量的前提下有效地利用了缓存空间。
5 web缓存降低了网络流量
在实际的网络规划中,一个安装在高速局域网络内的web缓存器可以大大降低该局域网在因特网上产生的web流量。因为高速局域网的路由器通过一条带宽容量相对较大的主干链路与因特网相连,局域网上的各个用户会通过这条主干链路对因特网上的初始服务器进行访问。用户对初始服务器的请求需经过多次的跳转,每一次跳转都会占用因特网上某一段链路的带宽,增加网络的流量,可能要经过多次的跳转才能达到请求对象的初始服务器,多次的跳转增加了用户的访问时延,消耗了有限的网络带宽资源,大量的访问产生了大量的网络流量,最终可能导致网络的拥塞。网络中大约有超过80%的用户访问的是20%的内容,在局域网内部安装web缓存器,研究表明web缓存可使请求对象的命中率达到20%-70%。我们取40%为局域网内的命中率来进行说明,安装了web缓存器的局域网可以缓解局域网内给因特网带来的40%的用户访问量,这40%用户的请求立即会得到web缓存器的响应。也就是说只有剩下60%的用户需要经过主干链路,去访问因特网上的初始服务器,而那40%用户的访问需求由web缓存器就可以满足,这样这40%的用户由于原先需要访问初始服务器而产生的流量在局域网内部就会被终止,大大降低了因特网上的web流量。
6 结束语
web缓存充分利用了本地存储技术,将频繁用于访问的数据和网页存储于本地磁盘空间中。web缓存器的应用缓解了初始服务器的访问压力,同时大大缩短了客户机请求的响应时间,从整体上降低