CN107305531A - 缓存容量限值确定方法和装置以及计算设备 - Google Patents
缓存容量限值确定方法和装置以及计算设备 Download PDFInfo
- Publication number
- CN107305531A CN107305531A CN201610248843.2A CN201610248843A CN107305531A CN 107305531 A CN107305531 A CN 107305531A CN 201610248843 A CN201610248843 A CN 201610248843A CN 107305531 A CN107305531 A CN 107305531A
- Authority
- CN
- China
- Prior art keywords
- limit value
- buffer memory
- memory capacity
- capacity limit
- hit rate
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种缓存容量限值确定方法和装置以及计算设备。该缓存容量限值确定方法包括:按照预定规则,调整缓存容量限值;计算与调整后的缓存容量限值相对应的缓存命中率;以及迭代执行调整所述缓存容量限值的步骤与计算所述缓存命中率的步骤,直到计算出的缓存命中率满足指定条件。利用本发明,能够根据设备磁盘缓存的具体使用状况,在保证缓存命中率最优的情况下将缓存容量限值动态地调整到适当的水平,从而提高了设备的网络访问性能。
Description
技术领域
本发明总体上涉及磁盘缓存技术领域,特别是涉及一种动态确定磁盘中用于网络数据的缓存容量的限值的方法和装置以及计算设备。
背景技术
在终端设备中,应用程序通过网络获取资源时,可在获取后将资源缓存在本地磁盘中,以便于下次再次获取时可根据一定的规则来判断是使用磁盘中缓存的数据还是再次通过网络获取。这是提高网络访问性能最基础的技术之一。
随着获取的资源越来越多,缓存会占用很大乃至过多的磁盘空间,而且会降低缓存命中率,即,使用缓存获取资源的次数与总获取资源次数之比,还会降低“判断是否使用缓存”这一运算的性能。这是因为在假定用户的使用习惯相对稳定的情况下,尽管理论上缓存命中率随着缓存容量的增加而逐渐趋于稳定,但实践中随着缓存容量的增加,缓存读取出错而导致无法使用的概率增大,而且缓存被系统或应用程序误删或篡改而不可用的概率也增大,最终会导致缓存命中率下降。
而缓存命中率在一定程度上与网络输入输出时间和网络流量相关联。一般来说,缓存命中率越低,用户访问网络资源所需的时间就越长,所耗费的网络流量也越高。因此,为了提高网络访问性能,需要对缓存容量进行限制。
在现有技术中,磁盘的缓存容量限值通常被设定为常量值。一般来说,可以通过两种方法来确定缓存容量限值:一是通过经验值,二是通过对大量样本进行统计计算得到的平均值。使用常量值作为缓存容量限值可能可以使应用程序在大量设备上运行时达到平均命中率最优,这里最优是指在其它同等条件下命中率最大。然而,每台设备的用户不同、使用习惯不同、访问的网络资源集合也不同,因此对大多数设备而言,利用根据现有技术设定的缓存容量限值获得的缓存命中率并非是平均值,也就不是针对这台设备的最优选择。
因而,需要一种能够根据设备的具体使用状况而动态地确定缓存容量限值的方法和装置。
发明内容
本发明的一个目的在于,根据设备磁盘缓存的具体使用状况,动态地调整缓存容量限值,以使得设备的缓存命中率达到其自身的最优值。
为此,本发明的缓存容量限值确定方法和装置,按照预定规则,逐步增大和/或减小设备的缓存容量限值,并确定在一定时间段内的最优缓存命中率,然后与该最优缓存命中率对应的缓存容量限值可以被设定为设备在随后一段时期内的缓存容量固定值。
根据本发明的一个方面,提供了一种缓存容量限值确定方法,包括以下步骤:按照预定规则,调整缓存容量限值;计算与调整后的缓存容量限值相对应的缓存命中率;以及迭代执行调整所述缓存容量限值的步骤与计算所述缓存命中率的步骤,直到计算出的缓存命中率满足指定条件。
利用本方法,能够根据设备磁盘缓存的具体使用状况,在保证缓存命中率最优的情况下将缓存容量限值动态地调整到适当的水平,从而提高了设备的网络访问性能。
在本发明的一个实施例中,所述指定条件被设定为:命中率提升值小于等于零,其中,所述命中率提升值定义为,与调整后的缓存容量限值相对应的缓存命中率和与调整前的缓存容量限值相对应的缓存命中率之差。在本发明的进一步的实施例中,所述指定条件被设定为:所述命中率提升值小于等于零的次数累计或连续达到指定考察次数。
利用本实施例,充分考虑了缓存命中率随时间波动的特性,由此便于更加准确地确定最佳缓存容量限值。
在本发明的一个实施例中,所述按照预定规则调整缓存容量限值的步骤包括:以指定步幅,增大和/或减小所述缓存容量限值。
利用本实施例,通过双向或单向逐步调整缓存容量限值,能够保证获得适于指定设备的最优缓存命中率。
在本发明的一个实施例中,所述按照预定规则调整缓存容量限值的步骤还包括:基于预定条件,调整所述指定步幅。在本发明的进一步的实施例中,所述基于预定条件调整所述指定步幅的步骤进一步包括:判断在上一次迭代中的所述命中率提升值是否小于预定提升参考值;和在判定所述命中率提升值小于所述预定提升参考值的情况下,增大所述指定步幅。
利用本实施例,通过提高缓存容量限值的调整步幅,使得能够快速确定实现最大缓存命中率的最优缓存容量限值。
在本发明的进一步的实施例中,所述增大所述缓存容量限值的步骤进一步包括:判断增大后的所述缓存容量限值是否超过缓存最大容量限值;和在判定增大后的所述缓存容量限值超过所述缓存最大容量限值的情况下,将所述缓存最大容量限值设定为调整后的所述缓存容量限值。
利用本实施例,能够保证在调整缓存容量限值的过程中不会超出设备硬件或其他因素所限定的设备缓存最大容量限值。
在本发明的一个实施例中,所述缓存容量限值确定方法还包括以下步骤:基于经验值或统计值,设定初始缓存容量限值;以及计算与所述初始缓存容量限值相对应的初始命中率。
利用经验值或统计值作为初始缓存容量限值,使得能够准确、快速地确定实现最大缓存命中率的最优缓存容量限值。
在本发明的一个实施例中,所述缓存容量限值确定方法还包括以下步骤:确定缓存命中率最大的缓存容量限值。
在本发明的进一步的实施例中,所述确定缓存命中率最大的缓存容量限值的步骤包括:获取通过增大所述缓存容量限值而迭代计算出的正向最大命中率;获取通过减小所述缓存容量限值而迭代计算出的反向最大命中率;判断所述初始命中率、所述正向最大命中率以及所述反向最大命中率中的最大者;以及确定与所判定的命中率最大者相对应的缓存容量限值。
在本发明的一个实施例中,所述计算与调整后的缓存容量限值相对应的缓存命中率的步骤包括:计算在调整了所述缓存容量限值后的预定时间内的缓存命中率。
根据本发明的另一方面,提供了一种缓存容量限值确定装置,包括:容量调整单元,用于按照预定规则,调整缓存容量限值;命中率计算单元,用于计算与调整后的缓存容量限值相对应的缓存命中率;以及迭代单元,用于使得所述容量调整单元和所述命中率计算单元迭代执行调整所述缓存容量限值的操作与计算所述缓存命中率的操作,直到计算出的缓存命中率满足指定条件。
在本发明的一个实施例中,所述指定条件被设定为:命中率提升值小于等于零,其中,所述命中率提升值定义为,与调整后的缓存容量限值相对应的缓存命中率和与调整前的缓存容量限值相对应的缓存命中率之差。在本发明的进一步的实施例中,所述指定条件被设定为:所述命中率提升值小于等于零的次数累计或连续达到指定考察次数。
在本发明的一个实施例中,所述容量调整单元包括:容量增/减子单元,用于以指定步幅,增大和/或减小所述缓存容量限值。
在本发明的一个实施例中,所述容量调整单元还包括:步幅调整子单元,用于基于预定条件,调整所述指定步幅。在本发明的进一步的实施例中,所述步幅调整子单元进一步包括:第一判断模块,用于判断在上一次迭代中的所述命中率提升值是否小于预定提升参考值;和步幅调整模块,用于在判定所述命中率提升值小于所述预定提升参考值的情况下,增大所述指定步幅。
在本发明的进一步的实施例中,所述容量增/减子单元进一步包括:第二判断模块,用于判断增大后的所述缓存容量限值是否超过缓存最大容量限值;和最大容量设定模块,用于在判定增大后的所述缓存容量限值超过所述缓存最大容量限值的情况下,将所述缓存最大容量限值设定为调整后的所述缓存容量限值。
在本发明的一个实施例中,所述缓存容量限值确定装置还包括:初始容量设定单元,用于基于经验值或统计值,设定初始缓存容量限值;以及初始命中率计算单元,用于计算与所述初始缓存容量限值相对应的初始命中率。
在本发明的一个实施例中,所述缓存容量限值确定装置还包括:最佳容量确定单元,用于确定缓存命中率最大的缓存容量限值。
在本发明的进一步的实施例中,所述最佳容量确定单元包括:第一获取模块,用于获取通过增大所述缓存容量限值而迭代计算出的正向最大命中率;第二获取模块,用于获取通过减小所述缓存容量限值而迭代计算出的反向最大命中率;第三判断模块,用于判断所述初始命中率、所述正向最大命中率以及所述反向最大命中率中的最大者;以及容量确定执行模块,用于确定与所判定的命中率最大者相对应的缓存容量限值。
在本发明的一个实施例中,所述命中率计算单元包括:命中率计算子单元,用于计算在调整了所述缓存容量限值后的预定时间内的缓存命中率。
根据本发明的又一方面,提供了一种计算设备,包括:网络接口,所述网络接口使得所述计算设备能够经由一个或多个网络通信;存储器,通过所述网络接口访问到的网络数据缓存在所述存储器中;以及一个或多个处理器,与所述网络接口和所述存储器相连接,所述一个或多个处理器配置为读取所述存储器中缓存的网络数据并执行以下操作:按照预定规则,调整缓存容量限值;计算与调整后的缓存容量限值相对应的缓存命中率;以及迭代执行调整所述缓存容量限值的操作与计算所述缓存命中率的操作,直到计算出的缓存命中率满足指定条件。
利用本发明的缓存容量限值确定方法和装置及计算设备,能够根据设备磁盘缓存的具体使用状况,在保证缓存命中率最优的情况下将缓存容量限值动态地调整到适当的水平,从而提高了设备的网络访问性能,节省了用户访问网络资源所需的时间,降低了所耗费的网络流量。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了根据本发明一实施例的计算设备的结构框图。
图2是示出了根据本发明一实施例的缓存容量限值确定方法的总流程图。
图3是示出了根据本发明一实施例的确定缓存命中率最大的缓存容量限值的处理的流程图。
图4是示出了根据本发明一实施例的缓存容量限值确定装置的功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
如前所述,为了提高设备的网络访问性能,保证缓存命中率最优,本发明通过根据设备磁盘缓存的具体使用状况,动态地调整设备的缓存容量限值,以确定在一定时间段内的最优缓存命中率,然后将与该最优缓存命中率对应的缓存容量限值设定为设备在随后一段时期内的缓存容量固定值。
下面将参照图1至图4来具体地描述本发明的实施例。图1是示出了根据本发明一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于网络接口110、存储器120以及一个或多个处理器130。处理器130与网络接口110和存储器120相连接。在本发明的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本发明范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
网络接口110使得计算设备100能够经由一个或多个网络通信。这些网络的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。网络接口110可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE 802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
通过网络接口110访问到的网络数据缓存在存储器120中的指定位置。存储器120可包括存储文件形式或其他形式的内容的任何类型的存储设备中的一个或多个,包括磁硬盘驱动器、固态硬驱、半导体存储设备、闪存,或者能够存储程序指令或数字信息的任何其他计算机可读可写存储介质。
处理器130能够读取存储器120中缓存的网络数据,并按照预定规则动态地调整缓存容量限值,且计算与调整后的缓存容量限值相对应的缓存命中率,直到缓存命中率达到最优。
处理器130确定最佳缓存容量限值的处理可以参见图2。图2示出了根据本发明一实施例的缓存容量限值确定方法200的总体流程图。在本发明中,假设计算设备100有足够的使用量使得缓存容量在指定考察时间内达到容量限值。
方法200开始于步骤S210,如图2所示,处理器130按照预定规则,调整缓存容量限值。接着,在步骤S230中,计算与步骤S210中经调整的缓存容量限值相对应的缓存命中率。在一个实施例中,计算在调整了缓存容量限值后的预定时间内的缓存命中率,例如以一周为考察间隔。
处理器130迭代执行步骤S210和S230,直到步骤S230中计算出的缓存命中率满足指定条件(步骤S250)。在本发明的一个实施例中,指定条件被设定为:命中率提升值小于等于零。这里,命中率提升值定义为,与调整后的缓存容量限值相对应的缓存命中率和与调整前的缓存容量限值相对应的缓存命中率之差。也就是说,在步骤S250中,一旦判定在调整了缓存容量限值之后缓存命中率没有得到提升,则缓存容量限值单向或双向调整过程结束。
在本发明的一个实施例中,指定条件被设定为:命中率提升值小于等于零的次数累计或连续达到指定考察次数。例如,在单向调整缓存容量限值的过程中出现累计或连续三次缓存命中率下降,则判定该单向调整过程结束。利用本实施例,充分考虑了缓存命中率随时间波动的特性,由此便于更加准确地确定最佳缓存容量限值。
利用图2中示出的方法200,本发明能够根据设备磁盘缓存的具体使用状况,在保证缓存命中率最优的情况下将缓存容量限值动态地调整到适当的水平,从而提高了设备的网络访问性能。
在此需要说明的是,本发明的缓存容量限值调整处理可以基于监测到用户网络浏览习惯发生了一定程度的改变而启动。例如,实时监控用户网络访问状况,当用户在一段时间内显著增加或减少网络访问量或者完全改变了习惯访问的网站(例如,计算设备100的用户发生变更),则可以启动图2所示的缓存容量限值确定方法200,重新确定适宜的新缓存容量限值。本发明的缓存容量限值调整处理还可以基于预定时间间隔而自动启动。例如,可以每年调整计算设备的缓存容量限值一次或两次。本领域普通技术人员能够在此教习下构想出其他情形来启动本发明的缓存容量限值调整处理。
在本发明的一个实施例中,步骤S210可以包括:以指定步幅,增大和/或减小缓存容量限值。利用本实施例,通过双向或单向逐步调整缓存容量限值,能够保证获得适于计算设备100的最优缓存命中率。
指定步幅可以根据经验值或缓存使用状况等因素来确定。在本发明的一个示例中,指定步幅可以被设定为初始缓存容量限值的百分数,例如1%。在本发明的一个实施例中,可以基于预定条件,调整指定步幅。这里,预定条件可以包括,例如,用户使用习惯(例如日常的访问网站数量)、用户习惯访问的网站的更新频率、这些网站资源的可缓存比例,或者初始缓存容量限值、缓存最大容量限值或缓存命中率变化情况。这里的调整指定步幅可以包括增大或减小指定步幅。在本发明的一个实施例中,可以根据缓存命中率提升情况调整指定步幅。具体地,可以首先判断在上一次迭代中的命中率提升值是否小于预定提升参考值。在判定命中率提升值小于预定提升参考值的情况下,增大指定步幅。利用本实施例,通过提高缓存容量限值的调整步幅,使得能够快速确定实现最大缓存命中率的最优缓存容量限值,尤其是在初始缓存容量限值偏离最优值较远时。
在本发明的另一实施例中,在沿着增大方向调整缓存容量限值时,还考虑了设备硬件或其他因素所限定的设备缓存最大容量限值。具体地,可以判断增大后的缓存容量限值是否超过缓存最大容量限值。在判定增大后的缓存容量限值超过缓存最大容量限值的情况下,将缓存最大容量限值设定为调整后的缓存容量限值。利用本实施例,能够保证在调整缓存容量限值的过程中不会超出设备硬件或其他因素所限定的设备缓存最大容量限值。
在本发明的一个实施例中,优选地,缓存容量限值确定方法200还可以包括以下步骤S205:基于经验值或统计值,设定初始缓存容量限值;以及计算与初始缓存容量限值相对应的初始命中率。例如,初始缓存容量限值的设定可以与磁盘容量、磁盘故障率、应用程序故障率、用户使用网络的习惯、用户通过应用程序清理缓存的习惯、第三方清理软件的策略以及这类软件的普及度等因素相关。利用经验值或统计值作为初始缓存容量限值,使得能够准确、快速地确定实现最大缓存命中率的最优缓存容量限值。
如图2所示,在本发明的一个实施例中,可选地,缓存容量限值确定方法200还可以包括步骤S270:确定缓存命中率最大的缓存容量限值。即,在确定了一定条件下的最优缓存命中率之后,将与该最优缓存命中率对应的缓存容量限值设定为计算设备100在接下来一段时期内的缓存容量固定值。
图3例示了步骤S270中确定缓存命中率最大的缓存容量限值的一种具体处理300。在该示例中,通过将双向调整缓存容量限值所获得的各向最大命中率与初始命中率进行比较,选取最大者对应的缓存容量限值作为计算设备100的缓存容量固定值。
具体地,在步骤S310,获取通过增大缓存容量限值而迭代计算出的正向最大命中率。在步骤S330,获取通过减小缓存容量限值而迭代计算出的反向最大命中率。接着在步骤S350中,判断步骤S250中获得的初始命中率、步骤S310中获得的正向最大命中率以及步骤S330中获得的反向最大命中率三者中的最大者。最后,确定与所判定的命中率最大者相对应的缓存容量限值,作为计算设备100的缓存容量固定值(步骤S370)。
图4出了根据本发明一实施例的缓存容量限值确定装置400的功能框图。缓存容量限值确定装置400的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现,例如通过图1所示的计算设备100中的一个或多个处理器130来实现。本领域技术人员可以理解的是,图4中所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
参照图4,为了提升缓存命中率,缓存容量限值确定装置400被配置为包括容量调整单元410、命中率计算单元430以及迭代单元450。容量调整单元410被配置为按照预定规则,调整缓存容量限值。命中率计算单元430被配置为用于计算与容量调整单元410调整后的缓存容量限值相对应的缓存命中率。在本发明的一个实施例中,命中率计算单元430包括命中率计算子单元435,用于计算在调整了缓存容量限值后的预定时间内的缓存命中率,例如以一周为考察间隔。
迭代单元450被配置为使得容量调整单元410和命中率计算单元430迭代执行调整缓存容量限值的操作与计算缓存命中率的操作,直到计算出的缓存命中率满足指定条件。在本发明的一个实施例中,指定条件被设定为:命中率提升值小于等于零,其中,命中率提升值定义为,与调整后的缓存容量限值相对应的缓存命中率和与调整前的缓存容量限值相对应的缓存命中率之差。在本发明的一个实施例中,指定条件被设定为:命中率提升值小于等于零的次数累计或连续达到指定考察次数。利用本实施例,充分考虑了缓存命中率随时间波动的特性,由此便于更加准确地确定最佳缓存容量限值。
利用图4中示出的缓存容量限值确定装置400,本发明能够根据设备磁盘缓存的具体使用状况,在保证缓存命中率最优的情况下将缓存容量限值动态地调整到适当的水平,从而提高了设备的网络访问性能。
在本发明的一个实施例中,容量调整单元410包括容量增/减子单元411,用于以指定步幅,增大和/或减小缓存容量限值。利用本实施例,通过双向或单向逐步调整缓存容量限值,能够保证获得适于设备的最优缓存命中率。指定步幅可以根据经验值或缓存使用状况等因素来确定。在本发明的一个示例中,指定步幅可以被设定为初始缓存容量限值的百分数,例如1%。
在本发明的一个实施例中,容量调整单元410还可以包括步幅调整子单元412,用于基于预定条件,调整指定步幅。这里,预定条件可以包括,例如,用户使用习惯(例如日常的访问网站数量)、用户习惯访问的网站的更新频率、这些网站资源的可缓存比例,或者初始缓存容量限值、缓存最大容量限值或缓存命中率变化情况。步幅调整子单元412可以增大或减小指定步幅。在本发明的一个实施例中,可以根据缓存命中率提升情况调整指定步幅。具体地,步幅调整子单元412进一步包括:第一判断模块413,用于判断在上一次迭代中的命中率提升值是否小于预定提升参考值;和步幅调整模块415,用于在第一判断模块413判定命中率提升值小于预定提升参考值的情况下,增大指定步幅。利用本实施例,通过提高缓存容量限值的调整步幅,使得能够快速确定实现最大缓存命中率的最优缓存容量限值,尤其是在初始缓存容量限值偏离最优值较远时。
在本发明的另一实施例中,在沿着增大方向调整缓存容量限值时,还考虑了设备硬件或其他因素所限定的设备缓存最大容量限值。容量增/减子单元411进一步可以包括:第二判断模块417,用于判断增大后的缓存容量限值是否超过缓存最大容量限值;和最大容量设定模块419,用于在第二判断模块417判定增大后的缓存容量限值超过缓存最大容量限值的情况下,将缓存最大容量限值设定为调整后的缓存容量限值。利用本实施例,能够保证在调整缓存容量限值的过程中不会超出设备硬件或其他因素所限定的设备缓存最大容量限值。
在本发明的一个实施例中,缓存容量限值确定装置400还包括:初始容量设定单元405,用于基于经验值或统计值,设定初始缓存容量限值;以及初始命中率计算单元406,用于计算与容量设定单元405设定的初始缓存容量限值相对应的初始命中率。例如,初始容量设定单元405可以基于以下因素来设定初始缓存容量限值:磁盘容量、磁盘故障率、应用程序故障率、用户使用网络的习惯、用户通过应用程序清理缓存的习惯、第三方清理软件的策略以及这类软件的普及度,等等。利用经验值或统计值作为初始缓存容量限值,使得能够准确、快速地确定实现最大缓存命中率的最优缓存容量限值。
在本发明的一个实施例中,缓存容量限值确定装置400还可以包括最佳容量确定单元470,用于确定缓存命中率最大的缓存容量限值。在一个示例中,通过将双向调整缓存容量限值所获得的各向最大命中率与初始命中率进行比较,选取最大者对应的缓存容量限值作为计算设备100在随后一段时期内的缓存容量固定值。具体地,最佳容量确定单元470包括:第一获取模块471,用于获取通过增大缓存容量限值而迭代计算出的正向最大命中率;第二获取模块473,用于获取通过减小缓存容量限值而迭代计算出的反向最大命中率;第三判断模块475,用于判断初始命中率计算单元406计算的初始命中率、第一获取模块471获取的正向最大命中率以及第二获取模块473获取的反向最大命中率三者中的最大者;以及容量确定执行模块477,用于确定与所判定的命中率最大者相对应的缓存容量限值。
综上所述,利用本发明的缓存容量限值确定方法和装置及计算设备,能够根据设备磁盘缓存的具体使用状况,在保证缓存命中率最优的情况下将缓存容量限值动态地调整到适当的水平,从而提高了设备的网络访问性能,节省了用户访问网络资源所需的时间,降低了所耗费的网络流量。
此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (23)
1.一种缓存容量限值确定方法,包括以下步骤:
按照预定规则,调整缓存容量限值;
计算与调整后的缓存容量限值相对应的缓存命中率;以及
迭代执行调整所述缓存容量限值的步骤与计算所述缓存命中率的步骤,直到计算出的缓存命中率满足指定条件。
2.根据权利要求1所述的缓存容量限值确定方法,其中,所述指定条件被设定为:
命中率提升值小于等于零,
其中,所述命中率提升值定义为,与调整后的缓存容量限值相对应的缓存命中率和与调整前的缓存容量限值相对应的缓存命中率之差。
3.根据权利要求2所述的缓存容量限值确定方法,其中,所述指定条件被设定为:
所述命中率提升值小于等于零的次数累计或连续达到指定考察次数。
4.根据权利要求2所述的缓存容量限值确定方法,其中,所述按照预定规则调整缓存容量限值的步骤包括:
以指定步幅,增大和/或减小所述缓存容量限值。
5.根据权利要求4所述的缓存容量限值确定方法,其中,所述按照预定规则调整缓存容量限值的步骤还包括:
基于预定条件,调整所述指定步幅。
6.根据权利要求5所述的缓存容量限值确定方法,其中,所述基于预定条件调整所述指定步幅的步骤进一步包括:
判断在上一次迭代中的所述命中率提升值是否小于预定提升参考值;和
在判定所述命中率提升值小于所述预定提升参考值的情况下,增大所述指定步幅。
7.根据权利要求4所述的缓存容量限值确定方法,其中,所述增大所述缓存容量限值的步骤进一步包括:
判断增大后的所述缓存容量限值是否超过缓存最大容量限值;和
在判定增大后的所述缓存容量限值超过所述缓存最大容量限值的情况下,将所述缓存最大容量限值设定为调整后的所述缓存容量限值。
8.根据权利要求1至7中任一项所述的缓存容量限值确定方法,还包括以下步骤:
基于经验值或统计值,设定初始缓存容量限值;以及
计算与所述初始缓存容量限值相对应的初始命中率。
9.根据权利要求8所述的缓存容量限值确定方法,还包括以下步骤:
确定缓存命中率最大的缓存容量限值。
10.根据权利要求9所述的缓存容量限值确定方法,其中,所述确定缓存命中率最大的缓存容量限值的步骤包括:
获取通过增大所述缓存容量限值而迭代计算出的正向最大命中率;
获取通过减小所述缓存容量限值而迭代计算出的反向最大命中率;
判断所述初始命中率、所述正向最大命中率以及所述反向最大命中率中的最大者;以及
确定与所判定的命中率最大者相对应的缓存容量限值。
11.根据权利要求1所述的缓存容量限值确定方法,其中,所述计算与调整后的缓存容量限值相对应的缓存命中率的步骤包括:
计算在调整了所述缓存容量限值后的预定时间内的缓存命中率。
12.一种缓存容量限值确定装置,包括:
容量调整单元,用于按照预定规则,调整缓存容量限值;
命中率计算单元,用于计算与调整后的缓存容量限值相对应的缓存命中率;以及
迭代单元,用于使得所述容量调整单元和所述命中率计算单元迭代执行调整所述缓存容量限值的操作与计算所述缓存命中率的操作,直到计算出的缓存命中率满足指定条件。
13.根据权利要求12所述的缓存容量限值确定装置,其中,所述指定条件被设定为:
命中率提升值小于等于零,
其中,所述命中率提升值定义为,与调整后的缓存容量限值相对应的缓存命中率和与调整前的缓存容量限值相对应的缓存命中率之差。
14.根据权利要求13所述的缓存容量限值确定装置,其中,所述指定条件被设定为:
所述命中率提升值小于等于零的次数累计或连续达到指定考察次数。
15.根据权利要求13所述的缓存容量限值确定装置,其中,所述容量调整单元包括:
容量增/减子单元,用于以指定步幅,增大和/或减小所述缓存容量限值。
16.根据权利要求15所述的缓存容量限值确定装置,其中,所述容量调整单元还包括:
步幅调整子单元,用于基于预定条件,调整所述指定步幅。
17.根据权利要求16所述的缓存容量限值确定装置,其中,所述步幅调整子单元进一步包括:
第一判断模块,用于判断在上一次迭代中的所述命中率提升值是否小于预定提升参考值;和
步幅调整模块,用于在判定所述命中率提升值小于所述预定提升参考值的情况下,增大所述指定步幅。
18.根据权利要求15所述的缓存容量限值确定装置,其中,所述容量增/减子单元进一步包括:
第二判断模块,用于判断增大后的所述缓存容量限值是否超过缓存最大容量限值;和
最大容量设定模块,用于在判定增大后的所述缓存容量限值超过所述缓存最大容量限值的情况下,将所述缓存最大容量限值设定为调整后的所述缓存容量限值。
19.根据权利要求12至18中任一项所述的缓存容量限值确定装置,还包括:
初始容量设定单元,用于基于经验值或统计值,设定初始缓存容量限值;以及
初始命中率计算单元,用于计算与所述初始缓存容量限值相对应的初始命中率。
20.根据权利要求19所述的缓存容量限值确定装置,还包括:
最佳容量确定单元,用于确定缓存命中率最大的缓存容量限值。
21.根据权利要求20所述的缓存容量限值确定装置,其中,所述最佳容量确定单元包括:
第一获取模块,用于获取通过增大所述缓存容量限值而迭代计算出的正向最大命中率;
第二获取模块,用于获取通过减小所述缓存容量限值而迭代计算出的反向最大命中率;
第三判断模块,用于判断所述初始命中率、所述正向最大命中率以及所述反向最大命中率中的最大者;以及
容量确定执行模块,用于确定与所判定的命中率最大者相对应的缓存容量限值。
22.根据权利要求12所述的缓存容量限值确定装置,其中,所述命中率计算单元包括:
命中率计算子单元,用于计算在调整了所述缓存容量限值后的预定时间内的缓存命中率。
23.一种计算设备,包括:
网络接口,所述网络接口使得所述计算设备能够经由一个或多个网络通信;
存储器,通过所述网络接口访问到的网络数据缓存在所述存储器中;以及
一个或多个处理器,与所述网络接口和所述存储器相连接,所述一个或多个处理器配置为读取所述存储器中缓存的网络数据并执行以下操作:
按照预定规则,调整缓存容量限值;
计算与调整后的缓存容量限值相对应的缓存命中率;以及
迭代执行调整所述缓存容量限值的操作与计算所述缓存命中率的操作,直到计算出的缓存命中率满足指定条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610248843.2A CN107305531B (zh) | 2016-04-20 | 2016-04-20 | 缓存容量限值确定方法和装置以及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610248843.2A CN107305531B (zh) | 2016-04-20 | 2016-04-20 | 缓存容量限值确定方法和装置以及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107305531A true CN107305531A (zh) | 2017-10-31 |
CN107305531B CN107305531B (zh) | 2020-10-16 |
Family
ID=60152229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610248843.2A Active CN107305531B (zh) | 2016-04-20 | 2016-04-20 | 缓存容量限值确定方法和装置以及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107305531B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199383A (zh) * | 2020-10-19 | 2021-01-08 | 珠海金山网络游戏科技有限公司 | 数据更新方法及装置 |
CN112861049A (zh) * | 2021-03-17 | 2021-05-28 | Vidaa美国公司 | 动态管理图片缓存空间的方法及显示设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0509231A1 (en) * | 1991-04-19 | 1992-10-21 | International Business Machines Corporation | Method of replacing data in a cache |
JPH0793198A (ja) * | 1993-09-27 | 1995-04-07 | Toshiba Corp | コンピュータシステム |
US20080244181A1 (en) * | 2007-03-30 | 2008-10-02 | Michael Walz | Dynamic run-time cache size management |
CN102763070A (zh) * | 2011-11-01 | 2012-10-31 | 华为技术有限公司 | 磁盘缓存的管理方法及装置 |
CN103077125A (zh) * | 2012-12-13 | 2013-05-01 | 北京锐安科技有限公司 | 一种高效利用存储空间的自适应自组织塔式缓存方法 |
US8788783B1 (en) * | 2010-06-18 | 2014-07-22 | Disney Enterprises, Inc. | Dynamically tuning the size of a cache stored in a shared memory |
CN105183661A (zh) * | 2015-07-27 | 2015-12-23 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
-
2016
- 2016-04-20 CN CN201610248843.2A patent/CN107305531B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0509231A1 (en) * | 1991-04-19 | 1992-10-21 | International Business Machines Corporation | Method of replacing data in a cache |
JPH0793198A (ja) * | 1993-09-27 | 1995-04-07 | Toshiba Corp | コンピュータシステム |
US20080244181A1 (en) * | 2007-03-30 | 2008-10-02 | Michael Walz | Dynamic run-time cache size management |
US8788783B1 (en) * | 2010-06-18 | 2014-07-22 | Disney Enterprises, Inc. | Dynamically tuning the size of a cache stored in a shared memory |
CN102763070A (zh) * | 2011-11-01 | 2012-10-31 | 华为技术有限公司 | 磁盘缓存的管理方法及装置 |
CN103077125A (zh) * | 2012-12-13 | 2013-05-01 | 北京锐安科技有限公司 | 一种高效利用存储空间的自适应自组织塔式缓存方法 |
CN105183661A (zh) * | 2015-07-27 | 2015-12-23 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199383A (zh) * | 2020-10-19 | 2021-01-08 | 珠海金山网络游戏科技有限公司 | 数据更新方法及装置 |
CN112861049A (zh) * | 2021-03-17 | 2021-05-28 | Vidaa美国公司 | 动态管理图片缓存空间的方法及显示设备 |
CN112861049B (zh) * | 2021-03-17 | 2024-04-19 | Vidaa美国公司 | 动态管理图片缓存空间的方法及显示设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107305531B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515663A (zh) | 调整中央处理器内核运行频率的方法和装置 | |
CN106997351A (zh) | 一种资源缓存管理方法及系统和装置 | |
CN106326062A (zh) | 应用程序的运行状态控制方法和装置 | |
CN107305531A (zh) | 缓存容量限值确定方法和装置以及计算设备 | |
CN109710330A (zh) | 应用程序的运行参数确定方法、装置、终端及存储介质 | |
US20150089052A1 (en) | Context-Aware HTTP Compression | |
CN114124942B (zh) | 核心网资源调度方法、装置及电子设备 | |
EP3195438A1 (en) | System, method and apparatuses for determining parameter settings for a power generation system and a tangible computer readable medium | |
CN109561152B (zh) | 数据访问请求响应方法、装置、终端和存储介质 | |
WO2023050672A1 (zh) | 随机写性能调节的方法、装置、电子设备及存储介质 | |
CN103716249B (zh) | 一种网络传输速度控制方法和设备 | |
CN111523654A (zh) | 处理装置及方法 | |
CN107748711A (zh) | 自动优化Storm并行度的方法、终端设备及存储介质 | |
EP4099636A1 (en) | Capacity expansion method for network device and related apparatus | |
CN113205231A (zh) | 一种离网预测方法及装置 | |
CN110119364B (zh) | 一种输入/输出批量提交的方法和系统 | |
CN112579246B (zh) | 虚拟机迁移处理方法及装置 | |
US20140301199A1 (en) | Methods, systems, and computer program products for processing a packet | |
CN107124314A (zh) | 数据监控方法及装置 | |
CN117424861B (zh) | 一种网络资源管理方法、装置、设备及介质 | |
WO2024099474A1 (zh) | 能效评估方法、装置、系统及相关设备 | |
CN110868304A (zh) | 一种pcc策略下发方法及系统 | |
WO2021098626A1 (zh) | 确定非连续接收周期参数的方法、设备及介质 | |
WO2021155724A1 (zh) | 一种设定物品传送速度的方法和装置 | |
CN114553894B (zh) | 数据同步方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200714 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower Applicant before: Guangzhou Dongjing Computer Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |