一种缓存准入方法及装置的制作方法

文档序号:7869122阅读:223来源:国知局
专利名称:一种缓存准入方法及装置的制作方法
技术领域
本发明涉及缓存技术,尤其涉及一种缓存准入方法及装置。
背景技术
传统的web缓存处理方式是对新的缓存文件无条件地进行存储。当没有空间存放新的缓存文件时,再通过缓存替换机制删除部分缓存文件,以获得足够的空间,然后保存新的缓存对象。
由于无条件的存储缓存文件,当缓存文件较多时,会导致系统磁盘I/O操作频繁。 进一步,由于大量需要缓存的文件将导致磁盘空间很快被占满,从而需要频繁地删除磁盘上的缓存文件,这样将对系统磁盘形成巨大的压力,以致影响到系统的性能和稳定性。
在实际环境中,有很多缓存文件的访问频率是比较低的。在这类缓存文件从保存到磁盘上直至最后被替换出去这一段时间内,有可能都不会再被访问或者被访问的次数非常少。因此,缓存这些文件不仅没有带来收益,反而浪费了存储空间并增加了很多无谓的磁盘操作。
如果能通过某种方式获得缓存文件的价值(即,在未来时间内被重复请求的次数越多,则其价值越大),进而对于价值较低的缓存文件不进行写磁盘操作,那么将减少很多无谓的磁盘I/o操作。进一步,由于保存的都是高价值缓存文件,所以能够保持较高的缓存命中率。发明内容
本发明的目的是提供一种能够克服上述缺陷的缓存准入方法及装置。
在本发明的第一方面,提供了一种缓存准入方法,包括接收针对用户请求的响应内容;根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分,所述缓存价值分反映所述响应内容被用户请求的概率;以及将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于所述缓存准入阈值分,则对所述响应内容进行缓存。
在本发明的第二方面,提供了一种缓存准入装置,包括统计模块,用于对用户请求的响应内容进行统计,得出所述响应内容的统计信息;缓存价值计算模块,用于根据所述统计信息,对接收到的响应内容的缓存价值分进行计算,所述缓存价值分反映所述响应内容被用户请求的概率;准入判断模块,用于将所述缓存价值分与缓存准入阈值分进行比较, 如果所述缓存价值分高于缓存准入阈值分,则对所述响应内容进行缓存;以及缓存存储器, 用于对所述响应内容进行缓冲存储。
在第三方面,本发明提供了一种代理服务器,所述代理服务器通过网络接收用户对服务器提出的用户请求,将所述用户请求发送到服务器,并且通过网络接收服务器针对所述用户请求返回的响应内容,所述代理服务器包括统计模块,用于对用户请求的响应内容进行统计,得出所述响应内容的统计信息;缓存价值计算模块,用于根据所述统计信息, 对接收到的响应内容的缓存价值分进行 计算,所述缓存价值分反映所述响应内容被用户请求的概率;准入判断模块,用于将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于缓存准入阈值分,则对所述响应内容进行缓存;以及缓存存储器,用于对所述响应内容进行缓冲存储。在第四方面,本发明提供了一种用户终端,所述用户终端通过网络与服务器相连接并且向服务器提出用户请求并且接受来自所述服务器的响应内容,所述客户终端包括统计模块,用于对用户请求的响应内容进行统计,得出所述响应内容的统计信息;缓存价值计算模块,用于根据所述统计信息,对接收到的响应内容的缓存价值分进行计算,所述缓存价值分反映所述响应内容被用户请求的概率;准入判断模块,用于将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于缓存准入阈值分,则对所述响应内容进行缓存;以及缓存存储器,用于对所述响应内容进行缓冲存储。本发明通过对用户请求进行统计,基于待缓存内容的流行度对其进行价值评分,并且根据当前的系统负载动态地设置缓存准入门槛,提高了缓存命中率,增强了系统的性能和稳定性。


图1是根据本发明实施例的基于缓存流行度的缓存准入控制的功能示意图;以及图2是根据本发明实施例的基于缓存流行度的缓存准入控制的方法流程具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1是根据本发明实施例的基于缓存流行度的缓存准入控制的功能示意图。用户和服务 器之间通过代理服务器进行交互,代理服务器通过网络分别于用户/用户终端和服务器相连接。用户在用户终端上通过网络向代理服务器发出请求,请求处理模块接收用户请求并对其进行处理。如果用户请求的文件存在于缓存存储器中,则直接从缓存存储器中提取将该文件并将其发送给用户。如果用户请求的文件不存在于缓存存储器中,则将该请求发送到服务器。此外,代理服务器中的统计模块根据用户请求对所请求的文件进行统计,得出统计信息。服务器接收到用户请求后做出响应,将请求的文件发送到代理服务器。缓存价值计算模块根据服务器发送来的文件,根据统计信息计算该文件的缓存价值。除了计算文件的缓存价值之外,缓存准入阈值计算模块根据代理服务器的系统负载计算出缓存准入阈值。优选地,代理服务器包括CPU占用率获取模块和磁盘I/O值获取模块,用于分别通过调用系统接口获取所述CPU占用率和所述磁盘I/O值,所述缓存准入阈值计算模块根据所述CPU占用率和/或所述磁盘I/O值来计算所述当前的系统负载值。接下来,缓存准入判断模块(图中未示出)将该文件的缓存价值与当前的缓存准入阈值进行比较,以判断是否准入,即是否允许对该文件进行缓冲存储。如果该文件的缓存价值高于当前的缓存准入阈值,则将该文件存入缓存存储器,同时通过请求处理模块将该文件发送给用户。如果该文件的缓存价值低于当前的缓存准入阈值,则不将该文件存入缓存存储器,直接通过请求处理模块将该文件发送给用户。
应当理解,可以预先设置缓存准入阈值,直接将服务器响应的文件的缓存价值与之进行比较来判断是否要将其缓存。然而,采用根据当前系统负载动态地计算缓存准入阈值的方式更加灵活,能够随系统负载状况灵活调整策略,是一种优选的方式。
还应当理解,该代理服务器的上述功能可以直接由用户终端来执行,用户终端例如可以包括台式计算机、个人数字助理、便携式计算机、手机等设备。相应地,服务器直接与用户终端进行交互,并且上述的系统负载是指用户终端的系统负载。然而,在采用代理服务器作为用户终端与服务器之间的连接控制机构时,多个用户/用户终端可以共享缓存存储器中的缓存内容,是一种优选的方式。
图2是根据本发明实施例的基于缓存流行度的缓存准入控制的方法流程图。
用户向代理服务器发出请求,请求处理模块接收用户请求并对其进行处理。如果用户请求的文件存在于缓存存储器中,则直接从缓存存储器中提取将该文件并将其发送给用户。如果用户请求的文件不存在于缓存存储器中,则将该请求发送到服务器。此外,代理服务器中的统计模块根据用户请求对所请求的文件进行统计,得出统计信息。服务器接收到用户请求后做出响应,将请求的文件发送到代理服务器。
在步骤201,接收来自服务器的响应内容。
在步骤202,判断是否需要缓存该响应内容,可以根据预定的简单规则进行初步判断。如果不需要缓存该响应内容,在流程进行到步骤207,不缓存该响应内容;否则流程进行到步骤203。
在步骤203,根据系统负载计算该当前的缓存准入阈值,并按照预设的评分标准, 得到缓存准入阈值分。
在步骤204,根据预先得出的统计信息计算该文件的缓存价值,并按照预设的评分标准,得到缓存价值分。
在步骤205,判断是否准入。换言之,是将该响应内容的缓存价值分与当前的缓存准入阈值分进行比较。如果该文件的缓存价值分高于当前的缓存准入阈值分,则流程进行到步骤206 ;如果该文件的缓存价值分低于当前的缓存准入阈值分,则流程进行到步骤 207。
在步骤206,对该响应内容进行缓存,将其存入缓存存储器。
在步骤207,不对该响应内容进行缓存。
在步骤208,将该响应内容通过网络发送给用户。
在下面,根据本发明的一个实施例对缓存价值计算进行详细描述。
本发明通过对待缓存文件的流行度来评估该缓存的价值。流行度(popularity)适用于描述待缓存文件被请求的热度的一个概念,它反映了待缓存文件某时刻被客户请求的概率。流行度有随时间变化的特性,因此其在未来某时刻的流行度是难以精确预知的,只能根据其过去的流行度的情况进行统计。例如,将客户端请求分段,每段为一个统计周期,每个周期包含N个请求;在这N个请求中分别 统计各文件的请求次数,并保留最近K次统计结果,用于对将来的流行度进行估计。
定义reqi表示时刻t之前,总共N次请求中对文件i的请求次数,则文件i在时刻t之前的流行度popui可以定义为
popui (t) =reqi (t) /N对请求的文件f,根据保留的前K次统计记录信息,利用回归分析方法预测第K+1个统计周期的流行度,具体方法如下记yf= (yfl,yf2,…,yfk)τ为文件f的第i个历史记录信息,i=l, 2,…K。将每一个统计周期内的流行度^近似的看作是统计周期序号的二次函数,采用二次回归模型表不为yf=bf0+bflt+bf2t2+ ε , ε Ν(0, δ 2),其中t=l, 2,3,…,k。依据该回归方程,可以计算出请求的文件在下一时刻的流行度,然后将流行度按照预先设定的规则进行评分,得到该文件的缓存价值分。在下面,根据本发明一个实施例对缓存准入阈值计算进行详细描述。通过上述的缓存价值评估机制可以控制写入磁盘的缓存文件的数量,以达到减轻系统磁盘I/O压力的目的,但是一味的减轻系统负载,将可能造成系统资源不能充分被利用的情况,意味着系统资源的浪费。所以需要有一个动态调节机制,在系统本身负载较高时,提高对缓存价值的要求,减少写磁盘操作,保证系统的稳定运行;在系统负载较低时,降低对缓存价值的要求,允许更多缓存文件写入磁盘,增加缓存命中率。例如,系统负载状态可以参考两个值“CPU占用率”和“磁盘I/O”。“CPU占用率”体现了系统处理web请求的繁忙程度,其中,CPU占用率越高意味着要处理的web请求越多。 在这种情况下,减少缓存写磁盘操作有利于更快速的处理请求。“磁盘I/O值”体现了磁盘的读写繁忙程度,I/O值越高意味着磁盘读写操作越繁忙,还意味着可能有大量的磁盘I/o操作处于阻塞状态。在这种情况下,减少缓存写磁盘操作有利于保持或提升系统的整体性能和稳定性。“CPU占用率”和“磁盘I/O值”都可以通过调用系统接口获得,本领域技术人员均可以实现,因此不再赘述。另外,系统负载值也可以利用“CPU占用率”和“磁盘I/O值”中的一个来计算,或者与其他可以反映系统负载的其他系统负载值进行结合来计算。例如,可以设定CPU占用率所占的权重为50%,磁盘I/O所占的权重也为50%,计算系统负载的公式为系统负载=CPU占用率X权重+磁盘I/OX权重计算出系统负载后,将负载值按照预先设定的评分标准进行评分,评分结果作为缓存准入阈值分,以待与缓存价值分比较来进行上述的准入判断。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
权利要求
1.一种缓存准入方法,包括接收针对用户请求的响应内容;根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分,所述缓存价值分反映所述响应内容被用户请求的概率;以及将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于所述缓存准入阈值分,则对所述响应内容进行缓存。
2.根据权利要求1所述的方法,还包括计算当前的系统负载值;以及根据所述当前的系统负载值和预先设定的评分规则,计算所述缓存准入阈值分。
3.根据权利要求2所述的方法,其中,所述系统负载值是根据CPU占用率和磁盘I/O值来计算的。
4.根据权利要求1所述的方法,其中,所述缓存准入阈值分是预先设定的。
5.根据权利要求1所述的方法,其中,所述根据预先计算的所述响应内容的统计信息, 计算所述响应内容的缓存价值分的步骤包括根据所述统计信息,计算所述响应内容在之前的一个或多个统计周期内的流行度,所述流行度表示所述响应内容在所述之前的一个或多个统计周期内被客户请求的概率;根据所述响应内容当前的流行度,利用回归分析模型预测所述响应内容在下一个统计周期内的流行度;以及根据预测得到的流行度和预先设定的评分规则,计算所述响应内容的缓存价值分。
6.一种缓存准入装置,包括统计模块,用于对用户请求的响应内容进行统计,得出所述响应内容的统计信息;缓存价值计算模块,用于根据所述统计信息,对接收到的响应内容的缓存价值分进行计算,所述缓存价值分反映所述响应内容被用户请求的概率;准入判断模块,用于将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于缓存准入阈值分,则对所述响应内容进行缓存;以及缓存存储器,用于对所述响应内容进行缓冲存储。
7.根据权利要求6所述的装置,还包括缓存准入阈值计算模块,用于计算当前的系统负载值,并且用于根据所述当前的系统负载值和预先设定的评分规则,计算所述缓存准入阈值分。
8.根据权利要求7所述的装置,还包括CPU占用率获取模块,用于通过调用系统接口获取所述CPU占用率;磁盘I/O值获取模块,用于通过调用系统接口获取所述磁盘I/O值;其中,所述缓存准入阈值计算模块根据所述CPU占用率和/或所述磁盘I/O值来计算所述当前的系统负载值。
9.一种代理服务器,包括如权利要求6-8之一所述的缓存准入装置,所述代理服务器通过网络接收用户对服务器提出的用户请求,将所述用户请求发送到服务器,并且通过网络接收服务器针对所述用户请求返回的响应内容。
10.一种用户终端,包括如权利要求6-8之一所述的缓存准入装置,所述用户终端通过网络与服务器相连接并且向服务器提出用户请求并且接受来自所述服务器的响应内容。
全文摘要
本发明涉及一种缓存准入方法及装置,所述方法包括接收针对用户请求的响应内容;根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分,所述缓存价值分反映所述响应内容被用户请求的概率;以及将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于所述缓存准入阈值分,则对所述响应内容进行缓存。优选地,根据当前的系统负载动态地计算所述缓存准入阈值分。本发明通过对用户请求进行统计,基于待缓存内容的流行度对其进行价值评分,并且根据当前的系统负载动态地设置缓存准入门槛,提高了缓存命中率,增强了系统的性能和稳定性。
文档编号H04L29/08GK103051701SQ20121054937
公开日2013年4月17日 申请日期2012年12月17日 优先权日2012年12月17日
发明者李继明, 刘怡臻 申请人:北京网康科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1