CN104426790B - 对多队列的缓存空间进行分配控制的方法及装置 - Google Patents
对多队列的缓存空间进行分配控制的方法及装置 Download PDFInfo
- Publication number
- CN104426790B CN104426790B CN201310377185.3A CN201310377185A CN104426790B CN 104426790 B CN104426790 B CN 104426790B CN 201310377185 A CN201310377185 A CN 201310377185A CN 104426790 B CN104426790 B CN 104426790B
- Authority
- CN
- China
- Prior art keywords
- spatial cache
- queue
- shared
- distribute
- needing
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种对多队列的缓存空间进行分配控制的方法及装置,本发明通过确定的需要分配待共享的缓存空间的队列个数为每个需要分配待共享的缓存空间的队列分配共享缓存空间,并随着需要分配待共享的缓存空间的队列个数的变化为每个需要分配待共享的缓存空间的队列分配共享缓存空间,实现了根据网络流量进行缓存空间自动调整分配,节约了硬件资源,有利于硬件实践,同时提高了缓存空间的利用率。
Description
技术领域
本发明涉及到缓存领域,特别涉及到一种对多队列的缓存空间进行分配控制的方法及装置。
背景技术
随着网络的普及,信息交流与信息共享成为人们日常生活中必不可少的一部分。而随着网络中交互信息(数据包)的不断增长,必然引起网络拥塞。因此,如何避免拥塞显得尤为重要,现在Internet(互联网)上使用得比较广泛的拥塞避免机制是RED(Random EarlyDiscard,随机早期丢弃)机制。而RED机制的关键在于如何有效的使用有限的缓存资源,执行合理的丢弃,从而实现拥塞避免,保障网络的顺畅。
在现有的采用RED机制的RED装置的多队列缓存中,通常的分配缓存方式包括:方式一、使用的都是按照端口、队列的数量及队列的优先级来分配缓存的方式;方式二、采用指数移动加权平均算法并配合其他函数实现多队列共享缓存的方式。
然而,上述方式存在不可回避的缺陷:
缺陷一、采用上述方式一划分缓存比较简单,但由于各队列的缓存是预先分配,且分配完毕即是固定的,不能根据各队列实时网络流量进行自动调整,缓存利用率偏低,缺乏自适应性,并且也无法真正达到共享缓存的效果,因为分配好之后,每个队列能使用缓存的最大额度就是分配给自己的那一部分;
缺陷二、采用上述方式二进行共享缓存,在激活队列较少时,缓存利用率偏低,并且算法相对复杂,不利于硬件实现。
发明内容
本发明的主要目的为提供一种对多队列的缓存空间进行分配控制的方法及装置,旨在实现根据网络流量进行缓存自动调整分配,进而提高缓存空间的利用率。
本发明提出一种对多队列的缓存空间进行分配控制的方法,该方法包括:
分析各个队列中是否存在需要分配待共享的缓存空间的队列;
在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列的个数;
根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
优选地,所述根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列的步骤包括:
将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;
根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
优选地,在所述分析各个队列中是否存在需要分配待共享的缓存空间的队列的步骤之前,该方法还包括:
将待独享的缓存空间分配给各个队列。
优选地,所述将待独享的缓存空间分配给各个队列的步骤之后,该方法还包括:
分析为各个队列分配的待独享的缓存空间是否满足各个队列的执行需要;
若有队列被分配的待独享的缓存空间不满足执行需要,则确定该队列为需要分配待共享的缓存空间的队列。
优选地,在所述将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列的步骤之后,该方法还包括:
分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用;
当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,并根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
一种对多队列的缓存空间进行分配控制的装置,该装置包括:
分析模块,用于分析各个队列中是否存在需要分配待共享的缓存空间的队列;
处理模块,用于在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列的个数;
分配模块,用于根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
优选地,所述处理模块,还用于将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;
所述分配模块,还用于根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
优选地,所述分配模块,还用于将待独享的缓存空间分配给各个队列。
优选地,所述分析模块,还用于分析为各个队列分配的待独享的缓存空间是否满足各个队列的执行需要;
所述处理模块,还用于若有队列被分配的待独享的缓存空间不满足执行需要,则确定该队列为需要分配待共享的缓存空间的队列。
优选地,所述分析模块,还用于分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用;
所述处理模块,还用于当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一;
所述分配模块,还用于根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
相对现有技术,通过确定的需要分配待共享的缓存空间的队列个数为每个需要分配待共享的缓存空间的队列分配共享缓存空间,并随着需要分配待共享的缓存空间的队列个数的变化为每个需要分配待共享的缓存空间的队列分配共享缓存空间,实现了根据网络流量进行缓存空间自动调整分配,节约了硬件资源,有利于硬件实践,同时提高了缓存空间的利用率。
附图说明
图1为本发明对多队列的缓存空间进行分配控制的方法的第一实施例的具体流程图;
图2为本发明对多队列的缓存空间进行分配控制的方法的第二实施例的具体流程图;
图3为本发明对多队列的缓存空间进行分配控制的方法的第三实施例的具体流程图;
图4为本发明对多队列的缓存空间进行分配控制的方法的第四实施例的具体流程图;
图5为本发明对多队列的缓存空间进行分配控制的方法的第五实施例的具体流程图;
图6为本发明对多队列的缓存空间进行分配控制的装置的较佳实施例的具体架构图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明对多队列的缓存空间进行分配控制的方法的第一实施例的具体流程图。
需要强调的是:图1所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
分析各个队列中是否存在需要分配待共享的缓存空间的队列;在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列的个数;根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
以下是本实施例逐步实现对多队列的缓存进行控制的具体步骤:
步骤S11,分析各个队列中是否存在需要分配待共享的缓存空间的队列。
具体的,实时或定时分析各个队列是否需要分配待共享的缓存空间的队列。
步骤S12,在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列个数。
具体的,当存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列个数;例如,当找出有3个需要分配待共享的缓存空间的队列时,即需要分配待共享的缓存空间的队列个数为3。
步骤S13,根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,获取待共享的缓存空间的大小,即为总的多队列待共享的缓存空间的大小,例如,可以是100M,也还可以是其他任意预先设置的共享缓存空间;将所述获取的多队列的共享缓存空间的大小根据所述确定的需要分配待共享的缓存空间的队列个数平均分配给各个需要分配待共享的缓存空间的队列。例如,获取的多队列的共享缓存空间的大小是100M,确定的需要分配待共享的缓存空间的队列个数是4个,则将100M共享缓存空间平均分配给4个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间的大小为25M;需要分配待共享的缓存空间的队列得到共享缓存空间大小的计算公式为:Q共队列=Q共/N,其中,Q共为总的多队列的共享缓存大小,N为需要分配待共享的缓存空间的队列个数,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间的独享。在本发明其他实施例中,分配待共享的缓存空间的大小给需要分配待共享的缓存空间的队列的方式,还可以是按照各个队列的优先级高低顺序及各个优先级对应的预设的参数将获取的多队列的共享缓存空间的大小分配给各个需要分配待共享的缓存空间的队列。
通过确定的需要分配待共享的缓存空间的队列个数为每个需要分配待共享的缓存空间的队列分配共享缓存空间,并随着需要分配待共享的缓存空间的队列个数的变化为每个需要分配待共享的缓存空间的队列分配共享缓存空间,实现了根据网络流量进行缓存空间自动调整分配,节约了硬件资源,有利于硬件实践,同时提高了缓存空间的利用率。
如图2所示,为本发明对多队列的缓存空间进行分配控制的方法的第二实施例的具体流程图。
基于上述第一实施例,步骤S13包括:
步骤S14,将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;
步骤S15,根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,获取待共享的缓存空间的大小,即为多队列分配的共享缓存空间的大小,例如,可以是100M,也还可以是其他任意预先设置的共享缓存空间;预留预设值的共享缓存空间,所述预设值可以是10M,或15M或30M等任意提前设置的共享缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。例如,获取的多队列的共享缓存空间的大小是100M,预留出预设值的缓存空间的预设值为15M,获取的需要分配待共享的缓存空间的队列个数是5个,则将100M减去15M之后的共享缓存空间85M作为待分配的缓存空间,将所述待分配的缓存空间85M平均分配给5个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间的大小为17M;需要分配待共享的缓存空间的队列得到共享缓存空间的大小的计算公式为:Q共队列=(Q共-Q预留)/N,其中,Q共为总的多队列的共享缓存空间,N为需要分配待共享的缓存空间的队列个数,Q预留为按照预设值预留的多队列的共享缓存空间,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间。
通过预留预设值的共享缓存空间,以便在总的共享缓存空间在被一个或多个需要分配待共享的缓存空间的队列全部占用时,其他队列有共享缓存空间可用,能更加灵活的分配多队列的共享缓存空间,提高用户体验。
如图3所示,为本发明对多队列的缓存空间进行分配控制的方法的第三实施例的具体流程图。
基于上述第一实施例,在步骤S11之前,还包括:
步骤S16,将待独享的缓存空间分配给各个队列。
具体的,获取多队列中总的队列个数,待独享的缓存空间、各个队列在多队列中的优先级以及各个优先级对应的分配系数;例如,队列的个数为4个,分别是队列A、队列B、队列C和队列D,多队列的总的独享缓存空间的大小为200M,各个队列的优先级顺序为:队列A、队列B、队列C及队列D,各个队列的对应的分配系数。根据获取的队列的优先级的高低顺序、总的队列个数以及各个优先级对应的分配系数,将所述待独享缓存空间对应的分配给各个队列,根据各个队列的优先级的高低顺序,高优先级的队列和低优先级的队列分配的独享缓存可以不同,也可以将待独享的缓存空间平均分配给各个队列。当将待独享的缓存空间平均分配给各个队列时,其公式可以是Q独队列=Q独/n,其中Q独队列为队列分配的独享缓存空间,Q独为多队列总的独享缓存空间,n为多队列中的队列个数;当高优先级的队列和低优先级的队列分配的独享缓存空间可以不同时,其公式可以是Q独队列=(Q独/n)*c,c为优先级对应的分配常数,也还可以是其他任意适用的计算方式得到每个队列分配的独享缓存空间,所述优先级根据每个队列的流量的大小来动态设置,即每个队列在每个不同的时刻优先级是不一致的。例如,按照Q独队列=Q独/n,分配待独享的缓存空间,待独享的缓存空间Q独=200M,多队列中的队列个数n=4,Q独对列=Q独/n=200M/4=50M;按照Q独队列=(Q独/n)*c分配待独享的缓存空间,若队列A的优先级对应的分配常数为1.5,队列B优先级对应的分配常数为1.2,队列C优先级对应的分配常数为0.8,队列D优先级对应的分配常数为0.5,则对应的队列A分配的独享缓存空间为Q独对列A=(200M/4)*1.5=50M*1.5=75M,队列B分配的独享缓存空间为Q独对列B=(200M/4)*1.2=50M*1.2=60M,队列C分配的独享缓存空间为Q独对列C=(200M/4)*0.8=50M*0.8=40M,队列D分配的独享缓空间存为Q独对列D=(200M/4)*0.5=50M*0.5=25M。本实施例中,优选地以根据获取的队列的优先级的高低顺序,将所述待独享的缓存空间对应的分配给各个队列,根据各个队列的优先级的高低顺序,高优先级的队列和低优先级的队列分配的独享缓存空间可以不同的方式分配多队列的独享缓存空间,即按照公式Q独队列=(Q独/n)*c分配待独享的缓存空间。
通过按照预设优先级对应的分配常数给各个队列合理的分配待独享的缓存空间,使得独享缓存空间的分配按照各个队列的流量的大小合理分配,提高独享缓存空间分配的灵活性,使得独享缓存空间能得到更好更合理的利用,进而提高独享缓存空间的利用率。
如图4所示,为本发明对多队列的缓存进行分配控制的方法的第四实施例的具体流程图。
基于上述第一实施例,在步骤S13之后,还包括:
步骤S17,分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用。
具体的,在获取待共享的缓存空间,将所述待共享的缓存空间根据确定的需要分配待共享的缓存空间的队列个数分配给各个需要分配待共享的缓存空间的队列之后,分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用,即分析存入该队列的共享缓存空间内的数据包是否被调度出队。
步骤S18,当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一。
具体的,当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一。例如,选取平均分配待共享的缓存空间的方式,获取待共享的缓存空间的大小是100M,确定的需要分配待共享的缓存空间的队列个数是4个,则将100M待共享的缓存空间平均分配给4个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间为25M;需要分配待共享的缓存空间的队列得到的共享缓存空间的计算公式为:Q共队列=Q共/N,其中,Q共为待共享的缓存空间,N为需要分配待共享的缓存空间的队列个数,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间;当存入某个队列的共享缓存空间内的数据包被调度出队时,即为队列分配的共享缓存空间不被占用,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,即需要分配待共享的缓存空间的队列个数变为3个。
步骤S19,根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,例如,确定的需要分配待共享的缓存空间的队列个数为4个,当存入某个队列的共享缓存空间内的数据包被调度出队时,即为队列分配的共享缓存空间不被占用,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,即需要分配待共享的缓存空间的队列个数变为3个,则将100M待共享的缓存空间平均分配给3个需要分配待共享的缓存空间的队列,Q共队列=Q共/N=100M/3=33.33M。
通过当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,将确定的需要分配待共享的缓存空间的队列个数减一,并根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列,通过动态监控需要分配待共享的缓存空间的队列个数并及时对待共享的缓存空间重新分配,提高待共享的缓存空间分配的灵活性,使得缓存能得到更好更合理的利用,进而提高缓存空间的利用率。
如图5所示,为本发明对多队列的缓存进行分配控制的方法的第五实施例的具体流程图。
基于上述第二实施例,在步骤S15之后,包括:
步骤S20,分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用。
具体的,将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列之后,分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用,即分析存入该队列的共享缓存空间内的数据包是否被调度出队。
步骤S21,当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一。
具体的,当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一。例如,选取平均分配待共享的缓存空间的方式,获取待共享的缓存空间的大小是100M,确定的需要分配待共享的缓存空间的队列个数是5个,预留出预设值的缓存空间的预设值为15M,则将100M减去15M之后的共享缓存空间85M作为待分配的缓存空间,将待分配的缓存空间平均分配给5个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间为17M;需要分配待共享的缓存空间的队列得到的共享缓存空间的计算公式为:Q共队列=(Q共-Q预留)/N,其中,Q共为总的多队列的共享缓存空间,N为需要分配待共享的缓存空间的队列个数,Q预留为按照预设值预留的多队列的共享缓存空间,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间;当存入某个队列的共享缓存空间内的数据包被调度出队时,即为队列分配的共享缓存空间不被占用,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,即需要分配待共享的缓存空间的队列个数变为4个。
步骤S22,根据减一后的队列个数,将待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,例如,确定的需要分配待共享的缓存空间的队列个数为5个,当存入某个队列的共享缓存空间内的数据包被调度出队时,即为队列分配的共享缓存空间不被占用,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,即需要分配待共享的缓存空间的队列个数变为4个,则将85M待分配的缓存空间平均分配给4个需要分配待共享的缓存空间的队列,Q共队列=Q共队列=(Q共-Q预留)/N=(100M-85M)/4=22.5M。
通过当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,将确定的需要分配待分配的缓存空间的队列个数减一,并根据减一后的队列个数,将待分配的缓存空间分配给各个需要分配待分配的缓存空间的队列,通过动态监控需要分配待分配的缓存空间的队列个数并及时对待分配的缓存空间重新分配,提高待共享的缓存空间分配的灵活性,使得缓存能得到更好更合理的利用,进而提高缓存空间的利用率。
如图6所示,为本发明对多队列的缓存空间进行分配控制的装置的较佳实施例的具体架构图。该装置包括:分析模块10,处理模块20及分配模块30,
所述分析模块10,用于分析各个队列中是否存在需要分配待共享的缓存空间的队列。
具体的,分析模块10实时或定时分析各个队列是否需要分配待共享的缓存空间的队列。
所述处理模块20,用于在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列的个数。
具体的,当存在需要分配待共享的缓存空间的队列时,处理模块20确定需要分配待共享的缓存空间的队列个数;例如,当找出有3个需要分配待共享的缓存空间的队列时,即需要分配待共享的缓存空间的队列个数为3。
所述分配模块30,用于根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,分配模块30获取待共享的缓存空间的大小,即为总的多队列待共享的缓存空间的大小,例如,可以是100M,也还可以是其他任意预先设置的共享缓存空间;分配模块30将所述获取的多队列的共享缓存空间的大小根据所述确定的需要分配待共享的缓存空间的队列个数平均分配给各个需要分配待共享的缓存空间的队列。例如,分配模块30获取的多队列的共享缓存空间的大小是100M,处理模块20确定的需要分配待共享的缓存空间的队列个数是4个,则分配模块30将100M共享缓存空间平均分配给4个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间的大小为25M;需要分配待共享的缓存空间的队列得到共享缓存空间大小的计算公式为:Q共队列=Q共/N,其中,Q共为总的多队列的共享缓存大小,N为需要分配待共享的缓存空间的队列个数,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间的独享。在本发明其他实施例中,分配模块30分配待共享的缓存空间的大小给需要分配待共享的缓存空间的队列的方式,还可以是按照各个队列的优先级高低顺序及各个优先级对应的预设的参数将获取的多队列的共享缓存空间的大小分配给各个需要分配待共享的缓存空间的队列。
通过分配模块30根据处理模块20确定的需要分配待共享的缓存空间的队列个数为每个需要分配待共享的缓存空间的队列分配共享缓存空间,并随着需要分配待共享的缓存空间的队列个数的变化为每个需要分配待共享的缓存空间的队列分配共享缓存空间,实现了根据网络流量进行缓存空间自动调整分配,节约了硬件资源,有利于硬件实践,同时提高了缓存空间的利用率。
进一步地,所述处理模块20,还用于将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;
所述分配模块30,还用于根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,分配模块30获取待共享的缓存空间的大小,即为多队列分配的共享缓存空间的大小,例如,可以是100M,也还可以是其他任意预先设置的共享缓存空间;处理模块20预留预设值的共享缓存空间,所述预设值可以是10M,或15M或30M等任意提前设置的共享缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;分配模块30根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。例如,分配模块30获取的多队列的共享缓存空间的大小是100M,处理模块20预留出预设值的缓存空间的预设值为15M,获取的需要分配待共享的缓存空间的队列个数是5个,则将100M减去15M之后的共享缓存空间85M作为待分配的缓存空间,分配模块30将所述待分配的缓存空间85M平均分配给5个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间的大小为17M;需要分配待共享的缓存空间的队列得到共享缓存空间的大小的计算公式为:Q共队列=(Q共-Q预留)/N,其中,Q共为总的多队列的共享缓存空间,N为需要分配待共享的缓存空间的队列个数,Q预留为按照预设值预留的多队列的共享缓存空间,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间。
通过处理模块20预留预设值的共享缓存空间,以便在总的共享缓存空间在被一个或多个需要分配待共享的缓存空间的队列全部占用时,其他队列有共享缓存空间可用,能更加灵活的分配多队列的共享缓存空间,提高用户体验。
进一步地,所述分配模块30,还用于将待独享的缓存空间分配给各个队列。
具体的,处理模块20获取多队列中总的队列个数,待独享的缓存空间、各个队列在多队列中的优先级以及各个优先级对应的分配系数;例如,队列的个数为4个,分别是队列A、队列B、队列C和队列D,多队列的总的独享缓存空间的大小为200M,各个队列的优先级顺序为:队列A、队列B、队列C及队列D,各个队列的对应的分配系数。分配模块30根据获取的队列的优先级的高低顺序、总的队列个数以及各个优先级对应的分配系数,将所述待独享缓存空间对应的分配给各个队列。分配模块30根据各个队列的优先级的高低顺序,高优先级的队列和低优先级的队列分配的独享缓存可以不同,也可以将待独享的缓存空间平均分配给各个队列。当分配模块30将待独享的缓存空间平均分配给各个队列时,其公式可以是Q独队列=Q独/n,其中Q独队列为队列分配的独享缓存空间,Q独为多队列总的独享缓存空间,n为多队列中的队列个数;分配模块30当高优先级的队列和低优先级的队列分配的独享缓存空间可以不同时,其公式可以是Q独队列=(Q独/n)*c,c为优先级对应的分配常数,也还可以是其他任意适用的计算方式得到每个队列分配的独享缓存空间,所述优先级根据每个队列的流量的大小来动态设置,即每个队列在每个不同的时刻优先级是不一致的。例如,分配模块30按照Q独队列=Q独/n,分配待独享的缓存空间,待独享的缓存空间Q独=200M,多队列中的队列个数n=4,Q独对列=Q独/n=200M/4=50M;按照Q独队列=(Q独/n)*c分配待独享的缓存空间,若队列A的优先级对应的分配常数为1.5,队列B优先级对应的分配常数为1.2,队列C优先级对应的分配常数为0.8,队列D优先级对应的分配常数为0.5,则对应的队列A分配的独享缓存空间为Q独对列A=(200M/4)*1.5=50M*1.5=75M,队列B分配的独享缓存空间为Q独对列B=(200M/4)*1.2=50M*1.2=60M,队列C分配的独享缓存空间为Q独对列C=(200M/4)*0.8=50M*0.8=40M,队列D分配的独享缓空间存为Q独对列D=(200M/4)*0.5=50M*0.5=25M。本实施例中,优选地以根据获取的队列的优先级的高低顺序,分配模块30将所述待独享的缓存空间对应的分配给各个队列,根据各个队列的优先级的高低顺序,高优先级的队列和低优先级的队列分配的独享缓存空间可以不同的方式分配多队列的独享缓存空间,即按照公式Q独队列=(Q独/n)*c分配待独享的缓存空间。
通过分配模块30按照预设优先级对应的分配常数给各个队列合理的分配待独享的缓存空间,使得独享缓存空间的分配按照各个队列的流量的大小合理分配,提高独享缓存空间分配的灵活性,使得独享缓存空间能得到更好更合理的利用,进而提高独享缓存空间的利用率。
进一步地,所述分析模块10,还用于分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用。
具体的,在获取待共享的缓存空间,将所述待共享的缓存空间根据确定的需要分配待共享的缓存空间的队列个数分配给各个需要分配待共享的缓存空间的队列之后,分析模块10分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用,即分析存入该队列的共享缓存空间内的数据包是否被调度出队。
所述处理模块20,还用于当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一。
具体的,当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则分析模块10确定该队列为不需要分配待共享的缓存空间的队列,处理模块20将确定的需要分配待共享的缓存空间的队列个数减一。例如,选取平均分配待共享的缓存空间的方式,分配模块30获取待共享的缓存空间的大小是100M,处理模块20确定的需要分配待共享的缓存空间的队列个数是4个,则分配模块30将100M待共享的缓存空间平均分配给4个需要分配待共享的缓存空间的队列,每个需要分配待共享的缓存空间的队列得到的共享缓存空间为25M;需要分配待共享的缓存空间的队列得到的共享缓存空间的计算公式为:Q共队列=Q共/N,其中,Q共为待共享的缓存空间,N为需要分配待共享的缓存空间的队列个数,Q共队列为每个需要分配待共享的缓存空间的队列分配的共享缓存空间;当存入某个队列的共享缓存空间内的数据包被调度出队时,即为队列分配的共享缓存空间不被占用,则处理模块20确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,即需要分配待共享的缓存空间的队列个数变为3个。
所述分配模块30,还用于根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
具体的,例如,处理模块20确定的需要分配待共享的缓存空间的队列个数为4个,当存入某个队列的共享缓存空间内的数据包被调度出队时,即为队列分配的共享缓存空间不被占用,则处理模块20确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,即需要分配待共享的缓存空间的队列个数变为3个,则分配模块30将100M待共享的缓存空间平均分配给3个需要分配待共享的缓存空间的队列,Q共队列=Q共/N=100M/3=33.33M。
通过当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,将处理模块20确定的需要分配待共享的缓存空间的队列个数减一,并根据减一后的队列个数,分配模块30将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列,通过动态监控需要分配待共享的缓存空间的队列个数并及时对待共享的缓存空间重新分配,提高待共享的缓存空间分配的灵活性,使得缓存能得到更好更合理的利用,进而提高缓存空间的利用率。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种对多队列的缓存空间进行分配控制的方法,其特征在于,该方法包括:
分析各个队列中是否存在需要分配待共享的缓存空间的队列;
在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列的个数;
根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
2.根据权利要求1所述的对多队列的缓存空间进行分配控制的方法,其特征在于,所述根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列的步骤包括:
将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;
根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
3.根据权利要求1或2所述的对多队列的缓存空间进行分配控制的方法,其特征在于,在所述分析各个队列中是否存在需要分配待共享的缓存空间的队列的步骤之前,该方法还包括:
将待独享的缓存空间分配给各个队列。
4.根据权利要求3所述的对多队列的缓存空间进行分配控制的方法,其特征在于,所述将待独享的缓存空间分配给各个队列的步骤之后,该方法还包括:
分析为各个队列分配的待独享的缓存空间是否满足各个队列的执行需要;
若有队列被分配的待独享的缓存空间不满足执行需要,则确定该队列为需要分配待共享的缓存空间的队列。
5.根据权利要求1或2所述的对多队列的缓存空间进行分配控制的方法,其特征在于,在所述将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列的步骤之后,该方法还包括:
分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用;
当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一,并根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
6.一种对多队列的缓存空间进行分配控制的装置,其特征在于,该装置包括:
分析模块,用于分析各个队列中是否存在需要分配待共享的缓存空间的队列;
处理模块,用于在存在需要分配待共享的缓存空间的队列时,确定需要分配待共享的缓存空间的队列的个数;
分配模块,用于根据确定的需要分配待共享的缓存空间的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
7.根据权利要求6所述的对多队列的缓存空间进行分配控制的装置,其特征在于,
所述处理模块,还用于将所述待共享的缓存空间中预留出预设值的缓存空间,并将预留后剩余的缓存空间作为待分配的缓存空间;
所述分配模块,还用于根据确定的需要分配待共享的缓存空间的队列个数,将所述待分配的缓存空间分配给各个需要分配待共享的缓存空间的队列。
8.根据权利要求6或7所述的对多队列的缓存空间进行分配控制的装置,其特征在于,
所述分配模块,还用于将待独享的缓存空间分配给各个队列。
9.根据权利要求8所述的对多队列的缓存空间进行分配控制的装置,其特征在于,
所述分析模块,还用于分析为各个队列分配的待独享的缓存空间是否满足各个队列的执行需要;
所述处理模块,还用于若有队列被分配的待独享的缓存空间不满足执行需要,则确定该队列为需要分配待共享的缓存空间的队列。
10.根据权利要求6或7所述的对多队列的缓存空间进行分配控制的装置,其特征在于,
所述分析模块,还用于分析为各个需要分配待共享的缓存空间的队列分配的共享缓存空间是否被占用;
所述处理模块,还用于当有需要分配待共享的缓存空间的队列被分配的共享缓存空间未被占用时,则确定该队列为不需要分配待共享的缓存空间的队列,将确定的需要分配待共享的缓存空间的队列个数减一;
所述分配模块,还用于根据减一后的队列个数,将待共享的缓存空间分配给各个需要分配待共享的缓存空间的队列。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310377185.3A CN104426790B (zh) | 2013-08-26 | 2013-08-26 | 对多队列的缓存空间进行分配控制的方法及装置 |
PCT/CN2014/078751 WO2014173356A1 (zh) | 2013-08-26 | 2014-05-29 | 缓存空间分配控制方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310377185.3A CN104426790B (zh) | 2013-08-26 | 2013-08-26 | 对多队列的缓存空间进行分配控制的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104426790A CN104426790A (zh) | 2015-03-18 |
CN104426790B true CN104426790B (zh) | 2019-02-26 |
Family
ID=51791086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310377185.3A Active CN104426790B (zh) | 2013-08-26 | 2013-08-26 | 对多队列的缓存空间进行分配控制的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104426790B (zh) |
WO (1) | WO2014173356A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330770A (zh) * | 2015-06-29 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种共享缓存分配方法及装置 |
CN107347039B (zh) * | 2016-05-05 | 2020-02-21 | 深圳市中兴微电子技术有限公司 | 一种共享缓存空间的管理方法及装置 |
CN107818056B (zh) * | 2016-09-14 | 2021-09-07 | 华为技术有限公司 | 一种队列管理方法及装置 |
CN108092787B (zh) * | 2016-11-21 | 2020-04-14 | 中国移动通信有限公司研究院 | 一种缓存调整方法、网络控制器及系统 |
CN106681830B (zh) * | 2016-12-21 | 2019-11-29 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN106776043A (zh) * | 2017-01-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种基于文件为客户端分配缓存配额的方法及其装置 |
CN109428829B (zh) * | 2017-08-24 | 2023-04-07 | 中兴通讯股份有限公司 | 多队列缓存管理方法、装置及存储介质 |
CN110007867B (zh) * | 2019-04-11 | 2022-08-12 | 苏州浪潮智能科技有限公司 | 一种缓存空间分配方法、装置、设备及存储介质 |
CN112000294A (zh) * | 2020-08-26 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种io队列深度调节方法、装置及相关组件 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878144A (zh) * | 2006-07-14 | 2006-12-13 | 华为技术有限公司 | 一种多队列流量控制的方法 |
CN101998505A (zh) * | 2009-08-12 | 2011-03-30 | 中兴通讯股份有限公司 | Hsdpa数据缓存方法和移动终端 |
CN102088395A (zh) * | 2009-12-02 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种调整媒体数据缓存的方法和装置 |
CN102347891A (zh) * | 2010-08-06 | 2012-02-08 | 高通创锐讯通讯科技(上海)有限公司 | 共享缓存的使用方法 |
CN102916903A (zh) * | 2012-10-25 | 2013-02-06 | 华为技术有限公司 | 缓存调整方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802028B2 (en) * | 2005-05-02 | 2010-09-21 | Broadcom Corporation | Total dynamic sharing of a transaction queue |
CN101609432B (zh) * | 2009-07-13 | 2011-04-13 | 中国科学院计算技术研究所 | 共享缓存管理系统及方法 |
US8566532B2 (en) * | 2010-06-23 | 2013-10-22 | International Business Machines Corporation | Management of multipurpose command queues in a multilevel cache hierarchy |
-
2013
- 2013-08-26 CN CN201310377185.3A patent/CN104426790B/zh active Active
-
2014
- 2014-05-29 WO PCT/CN2014/078751 patent/WO2014173356A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878144A (zh) * | 2006-07-14 | 2006-12-13 | 华为技术有限公司 | 一种多队列流量控制的方法 |
CN101998505A (zh) * | 2009-08-12 | 2011-03-30 | 中兴通讯股份有限公司 | Hsdpa数据缓存方法和移动终端 |
CN102088395A (zh) * | 2009-12-02 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种调整媒体数据缓存的方法和装置 |
CN102347891A (zh) * | 2010-08-06 | 2012-02-08 | 高通创锐讯通讯科技(上海)有限公司 | 共享缓存的使用方法 |
CN102916903A (zh) * | 2012-10-25 | 2013-02-06 | 华为技术有限公司 | 缓存调整方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2014173356A1 (zh) | 2014-10-30 |
CN104426790A (zh) | 2015-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104426790B (zh) | 对多队列的缓存空间进行分配控制的方法及装置 | |
CN110662238B (zh) | 一种针对边缘网络下突发请求的强化学习调度方法及设备 | |
CN102681889B (zh) | 一种云计算开放平台的调度方法 | |
US20150074679A1 (en) | Dynamic Scaling for Multi-Tiered Distributed Computing Systems | |
Mittal et al. | An optimized task scheduling algorithm in cloud computing | |
CN109783224A (zh) | 基于负载调配的任务分配方法、装置及终端设备 | |
WO2015084765A1 (en) | System and method for adaptive query plan selection in distributed relational database management system based on software-defined network | |
CN105701040B (zh) | 一种激活内存的方法及装置 | |
Hoenisch et al. | Workflow scheduling and resource allocation for cloud-based execution of elastic processes | |
CN105227489B (zh) | 一种带宽管理方法及电子设备 | |
CN106033371A (zh) | 一种视频分析任务的调度方法及系统 | |
CN106293950A (zh) | 一种面向集群系统的资源优化管理方法 | |
CN106028463B (zh) | 一种基于服务速率控制的星载动态频谱资源调度方法 | |
CN108810170A (zh) | 资源配置方法及系统 | |
CN105791371B (zh) | 一种云存储服务系统及方法 | |
CN104820616B (zh) | 一种任务调度的方法及装置 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
CN104035819B (zh) | 科学工作流调度处理方法及装置 | |
CN105049240B (zh) | 一种消息处理方法及服务器 | |
CN108509256B (zh) | 调度运行设备的方法、设备和运行设备 | |
Bez et al. | Twins: Server access coordination in the I/O forwarding layer | |
Liu et al. | Deadline guaranteed service for multi-tenant cloud storage | |
CN109729113A (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
CN108304253A (zh) | 基于缓存感知和数据本地性的map任务调度方法 | |
CN105430074B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221024 Address after: 518000 Zhongxing Industrial Park, Liuxian Avenue, Xili Street, Nanshan District, Shenzhen, Guangdong Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd. Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Patentee before: ZTE Corp. |