CN103051701B - 一种缓存准入方法及装置 - Google Patents
一种缓存准入方法及装置 Download PDFInfo
- Publication number
- CN103051701B CN103051701B CN201210549374.XA CN201210549374A CN103051701B CN 103051701 B CN103051701 B CN 103051701B CN 201210549374 A CN201210549374 A CN 201210549374A CN 103051701 B CN103051701 B CN 103051701B
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- response contents
- memory access
- user
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种缓存准入方法及装置,所述方法包括:接收针对用户请求的响应内容;根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分,所述缓存价值分反映所述响应内容被用户请求的概率;以及将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于所述缓存准入阈值分,则对所述响应内容进行缓存。优选地,根据当前的***负载动态地计算所述缓存准入阈值分。本发明通过对用户请求进行统计,基于待缓存内容的流行度对其进行价值评分,并且根据当前的***负载动态地设置缓存准入门槛,提高了缓存命中率,增强了***的性能和稳定性。
Description
技术领域
本发明涉及缓存技术,尤其涉及一种缓存准入方法及装置。
背景技术
传统的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=(yf1,yf2,…,yfk)T为文件f的第i个历史记录信息,i=1,2,…K。
将每一个统计周期内的流行度yf近似的看作是统计周期序号的二次函数,采用二次回归模型表示为:
yf=bf0+bf1t+bf2t2+ε,ε~N(0,δ2),其中:t=1,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占用率×权重+磁盘I/O×权重
计算出***负载后,将负载值按照预先设定的评分标准进行评分,评分结果作为缓存准入阈值分,以待与缓存价值分比较来进行上述的准入判断。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种缓存准入方法,包括:
接收针对用户请求的响应内容;
根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分,所述缓存价值分反映所述响应内容被用户请求的概率;以及
将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于所述缓存准入阈值分,则对所述响应内容进行缓存;还包括
计算当前的***负载值;以及
根据所述当前的***负载值和预先设定的评分规则,计算所述缓存准入阈值分;
所述***负载值是根据CPU占用率和磁盘I/O值来计算的;
所述根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分的步骤包括:
根据所述统计信息,计算所述响应内容在之前的一个或多个统计周期内的流行度,所述流行度表示所述响应内容在所述之前的一个或多个统计周期内被客户请求的概率;
根据所述响应内容当前的流行度,利用回归分析模型预测所述响应内容在下一个统计周期内的流行度;以及
根据预测得到的流行度和预先设定的评分规则,计算所述响应内容的缓存价值分。
2.一种缓存准入装置,包括:
统计模块,用于对用户请求的响应内容进行统计,得出所述响应内容的统计信息;
缓存价值计算模块,用于根据预先计算的所述响应内容的统计信息,计算所述响应内容的缓存价值分的步骤包括:
根据所述统计信息,计算所述响应内容在之前的一个或多个统计周期内的流行度,所述流行度表示所述响应内容在所述之前的一个或多个统计周期内被客户请求的概率;
根据所述响应内容当前的流行度,利用回归分析模型预测所述响应内容在下一个统计周期内的流行度;以及
根据预测得到的流行度和预先设定的评分规则,计算所述响应内容的缓存价值分;
所述缓存价值分反映所述响应内容被用户请求的概率;
准入判断模块,用于将所述缓存价值分与缓存准入阈值分进行比较,如果所述缓存价值分高于缓存准入阈值分,则对所述响应内容进行缓存;以及
缓存存储器,用于对所述响应内容进行缓冲存储;还包括:
缓存准入阈值计算模块,用于根据CPU占用率和磁盘I/O值计算当前的***负载值,并且用于根据所述当前的***负载值和预先设定的评分规则,计算所述缓存准入阈值分。
3.根据权利要求2所述的装置,还包括:
CPU占用率获取模块,用于通过调用***接口获取所述CPU占用率;
磁盘I/O值获取模块,用于通过调用***接口获取所述磁盘I/O值;
其中,所述缓存准入阈值计算模块根据所述CPU占用率和/或所述磁盘I/O值来计算所述当前的***负载值。
4.一种代理服务器,包括如权利要求2-3之一所述的缓存准入装置,所述代理服务器通过网络接收用户对服务器提出的用户请求,将所述用户请求发送到服务器,并且通过网络接收服务器针对所述用户请求返回的响应内容。
5.一种用户终端,包括如权利要求2-3之一所述的缓存准入装置,所述用户终端通过网络与服务器相连接并且向服务器提出用户请求并且接受来自所述服务器的响应内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549374.XA CN103051701B (zh) | 2012-12-17 | 2012-12-17 | 一种缓存准入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549374.XA CN103051701B (zh) | 2012-12-17 | 2012-12-17 | 一种缓存准入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103051701A CN103051701A (zh) | 2013-04-17 |
CN103051701B true CN103051701B (zh) | 2016-02-17 |
Family
ID=48064195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210549374.XA Active CN103051701B (zh) | 2012-12-17 | 2012-12-17 | 一种缓存准入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103051701B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412828B (zh) * | 2013-08-13 | 2016-12-28 | 华为技术有限公司 | 一种数据处理的方法和设备 |
CN103886038B (zh) * | 2014-03-10 | 2017-11-03 | 中标软件有限公司 | 数据缓存方法及装置 |
CN103942315B (zh) * | 2014-04-22 | 2017-03-22 | 杭州邦盛金融信息技术有限公司 | 一种基于装载因子的缓存数据预加载与替换方法 |
CN105554069B (zh) * | 2015-12-04 | 2018-09-11 | 国网山东省电力公司电力科学研究院 | 一种大数据处理分布式缓存***及其方法 |
CN106210116B (zh) * | 2016-07-29 | 2019-04-09 | 国网山西省电力公司检修分公司 | 一种基于内容中心网络的差异化存储方法及装置 |
CN106572168A (zh) * | 2016-10-27 | 2017-04-19 | 中国科学院信息工程研究所 | 基于内容价值缓存的内容中心网络协同缓存方法及*** |
CN106714235B (zh) * | 2017-01-09 | 2018-02-02 | 陕西师范大学 | 一种基于d2d通信的内容请求响应方法 |
CN107171961B (zh) * | 2017-04-28 | 2019-12-03 | 中国人民解放军信息工程大学 | 基于内容流行度的缓存方法及其装置 |
CN111046015A (zh) * | 2018-10-12 | 2020-04-21 | ***通信集团重庆有限公司 | 数据处理方法、装置、设备和介质 |
CN113497831B (zh) * | 2021-06-30 | 2022-10-25 | 西安交通大学 | 一种移动边缘网络下基于反馈流行度的内容放置方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026744A (zh) * | 2007-03-30 | 2007-08-29 | Ut斯达康通讯有限公司 | 分布式流媒体分发***及流媒体内存缓冲及调度分发方法 |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和*** |
CN102546716A (zh) * | 2010-12-23 | 2012-07-04 | ***通信集团公司 | 一种缓存区管理方法、装置及流媒体点播*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5381693B2 (ja) * | 2009-12-25 | 2014-01-08 | 日本電気株式会社 | コンテンツ入替えシステム、コンテンツ入替え方法、及びコンテンツ入替えプログラム |
-
2012
- 2012-12-17 CN CN201210549374.XA patent/CN103051701B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026744A (zh) * | 2007-03-30 | 2007-08-29 | Ut斯达康通讯有限公司 | 分布式流媒体分发***及流媒体内存缓冲及调度分发方法 |
CN102546716A (zh) * | 2010-12-23 | 2012-07-04 | ***通信集团公司 | 一种缓存区管理方法、装置及流媒体点播*** |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和*** |
Non-Patent Citations (1)
Title |
---|
"基于流行度预测的流媒体代理缓存替换算法";杨传栋等;《计算机工程》;20070415;第33卷(第7期);第99-100、129页,正文第2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN103051701A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103051701B (zh) | 一种缓存准入方法及装置 | |
US10620839B2 (en) | Storage pool capacity management | |
US20200089624A1 (en) | Apparatus and method for managing storage of data blocks | |
CN105205014B (zh) | 一种数据存储方法和装置 | |
US8447948B1 (en) | Dynamic selective cache compression | |
Aggarwal et al. | Sprout: A functional caching approach to minimize service latency in erasure-coded storage | |
US7251649B2 (en) | Method for prioritizing content | |
CN103312733B (zh) | 信息处理方法和装置 | |
CN102656570B (zh) | 用于缓存的方法和服务器 | |
US20110107053A1 (en) | Allocating Storage Memory Based on Future Use Estimates | |
US8307164B2 (en) | Automatic determination of read-ahead amount | |
CN106357789B (zh) | 一种信息访问控制方法、服务器及计算机可读存储介质 | |
CN103067297A (zh) | 一种基于资源消耗预测的动态负载均衡方法及装置 | |
CN103607312A (zh) | 用于服务器***的数据请求处理方法及*** | |
CN109413694B (zh) | 一种基于内容流行度预测的小小区缓存方法及装置 | |
EP3588913B1 (en) | Data caching method, apparatus and computer readable medium | |
CN114579404A (zh) | 冷热页统计方法以及装置 | |
WO2016082176A1 (zh) | 一种数据阈值预测方法与相关装置 | |
WO2023165543A1 (zh) | 共享缓存的管理方法、装置及存储介质 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN112631517B (zh) | 数据存储方法、装置、电子设备和存储介质 | |
CN114528229A (zh) | 一种缓存数据访问方法、装置及电子设备 | |
CN110658999B (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
Amer et al. | Aggregating caches: A mechanism for implicit file prefetching | |
CN113672652A (zh) | 一种数据访问方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |