缓存替换策略的选择方法、装置、代理服务器和系统的制作方法

文档序号:7761016阅读:596来源:国知局
专利名称:缓存替换策略的选择方法、装置、代理服务器和系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及缓存替换策略的选择方法、装置、代理服务器和系 统。
背景技术
随着因特网(Internet)的飞速发展,越来越多的人通过因特网来获取丰富的信 息资源。然而,用户数量的剧增不可避免地带来网络服务器负载加重、客户端响应延迟变大 以及主干网络拥塞等问题。尤其是近年来视频点播、远程教育和电子商务等因特网流媒体 应用的日益广泛,使得这些问题变得更加严重。解决这些问题的传统方法是不断升级网络服务器和提高网络接入带宽。然而,这 种传统方法并不能从根本上解决问题,这是因为,通常情况下,服务器的升级速度要低于用 户数量的增长速度;仅仅提高网络接入带宽也并不能缓解主干网络的拥塞问题,而对主干 网络进行升级则耗资巨大。代理缓存技术能够有效解决上述传统方法遇到的问题。代理缓存又称代理服务 器,是位于浏览器与服务器或客户端与服务器之间的一台服务器,能够提供较大的存储空 间。当用户访问数据时,首先检查代理缓存中有没有用户需要访问的数据,若有,则直接发 送给用户,否则,从服务器中获取相应的数据发送给客户。代理缓存的这种访问机制可以减少用户访问远程服务器的次数,在直接提高客户 端响应速度的同时,间接地减轻远程服务器负载和主干网络拥塞。此外,由于在代理缓存中 保存了数据拷贝,即使远程服务器在一段时间内暂时无法提供服务,也不会影响用户从代 理缓存获取信息资源,这些能够明显提高客户端服务质量。然而,代理缓存的存储容量有限;一旦存储区满,则必须按照事先约定的某种策 略,将一部分当前不再具有存储价值的数据替换出去,从而为后续客户服务。替换策略的好 坏直接影响代理缓存的性能,因此,缓存替换策略是影响代理缓存性能的一个重要因素。通常,衡量一个缓存替换策略优劣的性能指标主要有缓存命中率(CacheHit Rate, CHR),也简称为命中率、字节命中率(Byte Hit Rate, BHR)和延时时间(Latency Time, LT)。所谓缓存命中率,是指缓存页数命中的次数与用户总的请求数之比;字节命中 率,是指缓存中命中的字节数与用户总请求的字节数之比;延时时间(Latency Time)是 指从用户提出一个访问请求开始,到用户接收到该请求的响应为止所经历的时间为延时时 间。目前,通常的缓存替换策略包括最不经常使用(Least Frequently Used, LFU)算 法、基于大小的贪婪(Greedy Dual Size,⑶S)算法、最近最不经常使用(Least Frequency and Recently Used,LFRU)算法、某周期内最不经常使用(Period Least Frequency Used, PLFU)算法和最少服务字节(Lease ServedBytes,LSB)算法等。缓存替换策略的性能取决 于诸多因素,例如,用户访问模型、用户访问的应用特性和缓存的大小等等。目前,尚无一种 缓存替换策略能够针对所有因素而优于其它算法,并且,这些算法不具有针对应用变化的自适应调节能力,例如,针对于传统的Web访问,GDS算法具有较好的性能;而在视频点播 (Video On Demand, V0D)应用中使用LFRU算法和PLFU算法,它们比传统的LFU算法效率 高,更适合大规模的VOD系统,但对于P2P下载应用,LSB算法则更合适。随着现在网络中应用的不断变化,对缓存替换策略的适应性提出了新的要求。以 Squid Cache为例,说明现有技术使用的典型方案。Squid Cache (简称为Squid)是一个流 行的开源代理服务器和Web缓存服务器,通过配置文件工作。以下是Squid Cache的一部 分配置文件的文本,其中包括了缓存替换策略的配置;......
cache_mem 1228MB maximum_object_size 5096KB maximum_object_size_in_memory 5096KB cache_rep1acement_poIicy heap LFUDA memory_rep1acement_poIicy heap LRU cache_dir aufs/cache 2797016256 cache_access_log/log/access. log cache_log/log/cache, log
其中,关于缓存替换策略的配置是下面两行 cache—replacement—policy heap LFUDA memory—replacement—policy heap LRU
在这两行配置中,第一行是将整个Squid Cache的缓存替换策略配置为LFUDA算 行是将内存的缓存替换策略配置为LRU算法。 也就是说,Squid是通过预先配置的方式确定缓存替换策略的。Squid Cache—旦 运行之后,则无法进行更改;一旦更改,Squid Cache就需要重新启动,以使新的配置生效。 Squid Cache的缺陷在于,缓存替换策略的选择和更新需要管理员人为的判断、选择和更 新,即,选择哪种算法,需要管理员对当前的用户访问模型、应用等各种因素有清楚的了解, 也需要管理员清楚哪种缓存替换策略适合当前的场景,这对管理员的要求过高;另一方面, 当场景发生变化时,例如,用户访问模型发生变化时或应用发生变化时,Squid Cache不能 很好地适应。

发明内容
本发明实施例提供缓存替换策略的选择方法、装置和一种代理服务器,以减少人 为参与,实现对缓存替换策略的自动切换。本发明实施例提供一种缓存替换策略的选择方法,包括获取同时运行的多个缓存替换策略的统计数据;根据缓存替换策略决策策略事件和所述统计数据,将主缓存替换策略切换至满足 决策策略要求的缓存替换策略。本发明实施例提供一种缓存替换策略的选择装置,包括获取模块,用于获取同时运行的多个缓存替换策略的统计数据;
切换模块,用于根据缓存替换策略决策策略事件和所述获取模块获取的统计数 据,将主缓存替换策略切换至满足决策策略要求的缓存替换策略。本发明实施例提供一种代理服务器,包括多个缓存替换策略模块和上述缓存替换 策略的选择装置。本发明实施例提供一种系统,包括代理服务器和上述缓存替换策略的选择装置。从上述本发明实施例可知,由于本发明是在获取多个缓存替换策略的统计数据基 础上,结合缓存替换策略决策策略来选择缓存替换策略,因此,这种缓存替换策略的自动切 换降低了对管理人员的技术要求,并且,在代理缓存运作期间,能够自动选择一种适应于当 前场景、最符合用户性能期望的缓存替换策略,具有良好的自适应性。与现有技术采用一种 缓存替换策略贯穿始终的方案相比,能够进一步提升代理缓存的性能。


为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例描述中 所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以如这些附图 获得其他的附图。图1是本发明实施例提供的一种缓存替换策略的选择方法流程示意图;图2是本发明实施例提供的一种缓存替换策略的选择装置逻辑结构示意图;图3本发明实施例提供的一种代理服务器逻辑结构示意图;图4是本发明实施例提供的一种系统。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。请参阅附图1,是本发明实施例提供的一种缓存替换策略的选择方法流程示意图, 主要包括步骤S101,获取同时运行的多个缓存替换策略的统计数据。在本发明实施例中,可以根据需要配置多个缓存替换策略,例如,LRU算法、GDS 算法和LSB算法等等。多个缓存替换策略同时运行是指根据算法给出替换建议,统计数 据,替换策略,但是只有一个缓存替换策略才决定缓存区数据的删除和保留,这个缓存替 换策略在本实施例中称为主缓存替换策略(Active Policy),其余的称为从缓存替换策略 (Standby Policy),多个缓存替换策略各自维护一个标志(flag)。考虑到缓存替换策略一 般是在主缓存替换策略和从缓存替换策略两种策略之间进行变化,在本发明实施例中,可 以使用二值逻辑中的逻辑“ 1,,和“0”来设置这个标志。例如,使用逻辑“ 1,,表示该缓存替 换策略是主缓存替换策略,逻辑“0”表示该缓存替换策略是从缓存替换策略,反之亦反;或 者,更具体地,直接使用“active”表示该缓存替换策略是主缓存替换策略,“standby”表示 该缓存替换策略是从缓存替换策略。
本领域技术人员能够理解,上述对缓存替换策略标志的定义仅仅是举例说明,不 应视为对本发明所做的限制。在本发明实施例中,无论是主缓存替换策略还是从缓存替换策略,都必须统计自 身的统计数据,例如,缓存命中率或字节命中率或者延时时间等。缓存替换策略(包括主缓存替换策略和从缓存替换策略)的统计数据,可以是主 动上报,执行缓存替换策略的选择方法的主体接收,从而获取同时运行的多个缓存替换策 略的统计数据,该执行缓存替换策略的选择方法的主体可以是一种缓存替换策略的选择装 置。该装置可以置于代理缓存(代理服务器),也可以置于网管等其他网络设备中,其包含 的功能模块/单元可以是软件模块/单元、硬件模块/单元或软硬件相结合模块/单元。该 装置包括获取模块和切换模块,其中获取模块,用于获取同时运行的多个缓存替换策略的 统计数据;切换模块,用于根据缓存替换策略决策策略事件和所述获取模块获取的统计数 据,将所述主缓存替换策略切换至满足决策策略要求的缓存替换策略。也可以是执行缓存 替换策略的选择方法的主体发送请求统计数据的请求消息后,多个缓存替换策略被动上报 各自的统计数据,从而,执行缓存替换策略的选择方法的主体获取这些统计数据。如果该装 置置于代理缓存(代理服务器),则获取模块可以通过内部接口获取统计数据;如果该装置 置于网管等其他网络设备中,则获取模块可以通过一些网络协议,例如,简单网络管理协议 (SNMP, Simple Network Management Protocol)获取统计数据,当然,获取模块也可以通过 其他方式获取统计数据,此处不再赘述。S102,根据缓存替换策略决策策略事件和步骤SlOl获取的统计数据,将所述主缓 存替换策略切换至满足决策策略要求的缓存替换策略。可以通过获取同时运行的多个缓存替换策略统计数据,然后在决策策略事件发生 时,根据缓存替换策略决策策略和统计数据,将所述主缓存替换策略切换至满足决策策略 要求的缓存替换策略。在本发明实施例中,缓存替换策略决策策略包括决策策略事件的发 生和决策策略要求。所谓决策策略事件,是指判断什么时候进行替换策略的切换,例如,可以是网管人 员根据要求设定的一个时间点;也可以是具有周期的时间点,例如,每月的15日或每周的 周五等等。当这些时间点到来时,将主缓存替换策略切换至满足决策策略要求的缓存替换 策略。决策策略事件还可以是主缓存替换策略的命中率低于某个设定值,一旦这样的决 策策略事件发生,则该主缓存替换策略就要被切换,代之以命中率高于这个设定值的主缓 存替换策略。而决策策略要求,是指用来选择主替换策略的条件,例如,可以是替换策略选择 命中率最高、命中率增长最快或者是延时时间小于某个设定值(例如,100ms)的替换策略。例如,可以获取上一个月(例如,8月份)某个时间点,例如8月15日,多个缓存替 换策略的统计数据(例如命中率等)。若在8月15日哪一个缓存替换策略的命中率最高, 则在与8月15日相应的时间点,例如9月15日,将主缓存替换策略切换至命中率最高的缓 存替换策略。需要说明的是,也可以将上述决策策略事件做任意组合,当这些任意组合的决策 策略事件发生时,将主缓存替换策略切换至满足决策策略要求的缓存替换策略。例如,可以在每周五时,当正在运行的主缓存替换策略命中率低于设定值,则可以将该主缓存替换策 略切换至满足决策策略要求的缓存替换策略。当然,也可以将上述决策策略要求做任意组合,当决策策略事件发生时,将主缓存 替换策略切换至满足这些任意组合的决策策略要求的缓存替换策略。例如,可以在每周五 时,将主缓存替换策略切换至命中率最高、命中率增长最快和/或延时时间小于某个设定 值的缓存替换策略。切换模块判断决策策略事件是否发生,如果发生,根据缓存替换策略的统计数据, 选择一个满足决策策略要求的缓存替换策略,例如,将该缓存替换策略的标志flag设置为 “active”,将原主缓存替换策略的标志flag设置为“standby”。当然,选择的还可能是原主 缓存替换策略,这时,不进行切换动作。需要说明的是,上述决策策略事件和决策策略要求及其任意组合仅仅是对本发明 所作的举例说明,不应视为对本发明构成的限制。从上述本发明实施例可知,由于本发明是在获取多个缓存替换策略的统计数据基 础上,结合缓存替换策略决策策略来选择缓存替换策略,因此,这种缓存替换策略的自动切 换降低了对管理人员的技术要求,并且,在代理缓存运作期间,能够自动选择一种适应于当 前场景、最符合用户性能期望的缓存替换策略,具有良好的自适应性。与现有技术采用一种 缓存替换策略贯穿始终的方案相比,能够进一步提升代理缓存的性能。请参阅图2,本发明实施例提供的一种缓存替换策略的选择装置逻辑结构示意图。 为了便于说明,仅仅示出了与本发明实施例相关的部分。该装置可以用于代理缓存(代理 服务器)等设备中,其包含的功能模块/单元可以是软件模块/单元、硬件模块/单元或软 硬件相结合模块/单元。图2所示缓存替换策略的选择装置包括获取模块201和切换模块 202,其中获取模块201,用于获取同时运行的多个缓存替换策略的统计数据;切换模块202,用于根据缓存替换策略决策策略事件和所述获取模块201获取的 统计数据,将所述主缓存替换策略切换至满足决策策略要求的缓存替换策略。在本实施例中,决策策略事件是指判断什么时候进行替换策略的切换,例如,可以 是网管人员根据要求设定的一个时间点;也可以是具有周期的时间点,例如,每月的15日 或每周的周五等等。当这些时间点到来时,将主缓存替换策略切换至满足决策策略要求的 缓存替换策略。决策策略事件还可以是主缓存替换策略的命中率低于某个设定值,一旦这样的决 策策略事件发生,则该主缓存替换策略就要被切换,代之以命中率高于这个设定值的主缓 存替换策略。而决策策略要求是指用来选择主替换策略的条件,例如,可以是与其他缓存替换 策略相比,要求某个缓存替换策略的命中率最高、命中率增长最快或者是延时时间小于某 个设定值(例如,100ms)。例如,获取模块201可以获取上一个月(例如,8月份)某个时间点,例如8月15 日,多个缓存替换策略的统计数据(如命中率)。若在8月15日哪一个缓存替换策略的命 中率最高,则在与8月15日相应的时间点,例如9月15日,则切换模块202将主缓存替换 策略切换至命中率最高的缓存替换策略。
需要说明的是,也可以将上述决策策略事件做任意组合,当这些任意组合的决策 策略事件发生时,将主缓存替换策略切换至满足决策策略要求的缓存替换策略。例如,可以 在每周五时,当正在运行的主缓存替换策略命中率低于设定值,则可以将该主缓存替换策 略切换至满足决策策略要求的缓存替换策略。当然,也可以将上述决策策略要求做任意组合,当决策策略事件发生时,切换模块 202将主缓存替换策略切换至满足这些任意组合的决策策略要求的缓存替换策略。例如,可 以在每周五时,切换模块202将主缓存替换策略切换至命中率最高、命中率增长最快和/或 延时时间小于某个设定值的缓存替换策略。由于本发明是在获取多个缓存替换策略的统计数据基础上,结合缓存替换策略决 策策略来选择缓存替换策略,因此,这种缓存替换策略的自动切换降低了对管理人员的技 术要求,并且,在代理缓存运作期间,能够自动选择一种适应于当前场景、最符合用户性能 期望的缓存替换策略,具有良好的自适应性。与现有技术采用一种缓存替换策略贯穿始终 的方案相比,能够进一步提升代理缓存的性能。请参阅图3,本发明实施例提供的一种代理服务器逻辑结构示意图。为了便于说 明,仅仅示出了与本发明实施例相关的部分。该代理服务器包括缓存替换策略模块301和 缓存替换策略的选择装置302,其中,缓存替换策略的选择装置302可以是图2示例的缓存 替换策略的选择装置。在本实施例中,缓存替换策略模块301可以在代理服务器存在多个, 其中,只有一个运行主缓存替换策略,其余运行从缓存替换策略。主缓存替换策略和从缓存 替换策略的定义分别与前述图1或图2示例的主缓存替换策略和从缓存替换策略相同,此 处不做赘述,可参阅前述实施例的相关说明。图2示例的缓存替换策略的选择装置并不局限于在代理服务器中使用,还可以用 于一些通信系统。如图4所示本发明实施例提供的一种系统,包括代理服务器401和图2 示例的缓存替换策略的选择装置402,其中,代理服务器401包括多个缓存替换策略模块, 但只有一个缓存替换策略模块运行主缓存替换策略,其余缓存替换策略模块运行从缓存替 换策略。主缓存替换策略和从缓存替换策略的定义分别与前述图1或图2示例的主缓存替 换策略和从缓存替换策略相同,此处不做赘述。需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与 本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容 可参见本发明方法实施例中的叙述,此处不再赘述。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。以上对本发明实施例提供的缓存替换策略的选择方法、装置和一种代理服务器进 行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施 例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人 员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明 书内容不应理解为对本发明的限制。
权利要求
1.一种缓存替换策略的选择方法,其特征在于,包括获取同时运行的多个缓存替换策略的统计数据;根据缓存替换策略决策策略事件和所述统计数据,将主缓存替换策略切换至满足决策 策略要求的缓存替换策略。
2.如权利要求1所述的方法,其特征在于,所述同时运行的多个缓存替换策略中只有 一个为主缓存替换策略,其余为从缓存替换策略。
3.如权利要求1所述的方法,其特征在于,所述根据缓存替换策略决策策略事件和所 述统计数据,将主缓存替换策略切换至满足决策策略要求的缓存替换策略具体包括将满足决策策略要求的缓存替换策略的标志flag设置为active,将原主缓存替换策 略的标志flag设置为standby,所述标志“active”表示设置为active的缓存替换策略是 主缓存替换策略,所述标志“standby”表示设置为standby的缓存替换策略是从缓存替换 策略。
4.如权利要求1至3任意一项所述的方法,其特征在于,所述统计数据包括命中率、字 节命中率和/或延时时间。
5.一种缓存替换策略的选择装置,其特征在于,包括获取模块,用于获取同时运行的多个缓存替换策略的统计数据;切换模块,用于根据缓存替换策略决策策略事件和所述获取模块获取的统计数据,将 主缓存替换策略切换至满足决策策略要求的缓存替换策略。
6.如权利要求5所述的装置,其特征在于,所述切换模块具体用于将满足决策策略要 求的缓存替换策略的标志flag设置为active,将原主缓存替换策略的标志flag设置为 standby,所述标志“active”表示设置为active的缓存替换策略是主缓存替换策略,所述 标志“standby”表示设置为standby的缓存替换策略是从缓存替换策略。
7.—种代理服务器,其特征在于,包括多个缓存替换策略模块和权利要求5或6所述缓 存替换策略的选择装置。
8.如权利要求7所述的代理服务器,其特征在于,所述多个缓存替换策略模块中,只有 一个运行主缓存替换策略,其余运行从缓存替换策略。
9.一种系统,包括代理服务器和权利要求5或6所述缓存替换策略的选择装置。
10.如权利要求9所述的系统,其特征在于,所述代理服务器包括多个缓存替换策略模 块,其中,只有一个缓存替换策略模块运行主缓存替换策略,其余缓存替换策略模块运行从 缓存替换策略。
全文摘要
本发明实施例提供缓存替换策略的选择方法、装置和一种代理服务器,以减少人为参与,实现对缓存替换策略的自动切换。所述方法包括获取同时运行的多个缓存替换策略的统计数据;根据缓存替换策略决策策略事件和所述统计数据,将主缓存替换策略切换至满足决策策略要求的缓存替换策略。本发明实施例提供的缓存替换策略的自动切换降低了对管理人员的技术要求,并且,在代理缓存运作期间,能够自动选择一种适应于当前场景、最符合用户性能期望的缓存替换策略,具有良好的自适应性。与现有技术采用一种缓存替换策略贯穿始终的方案相比,能够进一步提升代理缓存的性能。
文档编号H04L12/56GK102137139SQ20101029503
公开日2011年7月27日 申请日期2010年9月26日 优先权日2010年9月26日
发明者王浩, 赵宇萍, 陈建, 魏含宇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1