基于动态虚拟门限的缓存管理方法

文档序号:1309986 发布日期:2020-07-10 浏览:15次 >En<

阅读说明:本技术 基于动态虚拟门限的缓存管理方法 (Cache management method based on dynamic virtual threshold ) 是由 张冰 凌楠玮 张奭 赵辉 张�诚 于 2020-03-13 设计创作,主要内容包括:本发明公开了一种基于动态虚拟门限的缓存管理方法,主要解决现有技术在高缓存利用率情况下不能保证各个队列门限设置公平的问题。其实现方案是:1)初始化各队列缓存管理参数;2)判断当前数据帧能否进入缓存空间,并判断缓存管理器是否需要丢弃数据帧,当没有数据帧到达缓存空间时本次缓存管理操作结束;3)对于没有被缓存丢弃的数据帧进入缓存空间;4)每隔T时刻修改一次各队列的虚拟门限值;5)出队调度器在每个周期取走缓存中的数据帧,返回2)。本发明只在缓存满的时候才丢弃数据帧且为每个队列设置了动态虚拟门限缓存,具有缓存空间利用率高,各个队列之间公平性较好的优点,可用于网络交换设备。(The invention discloses a cache management method based on a dynamic virtual threshold, which mainly solves the problem that the prior art can not ensure the fairness of the threshold setting of each queue under the condition of high cache utilization rate. The implementation scheme is as follows: 1) initializing each queue buffer management parameter; 2) judging whether the current data frame can enter a cache space or not, judging whether a cache manager needs to discard the data frame or not, and finishing the cache management operation when no data frame reaches the cache space; 3) entering a buffer space for the data frames which are not discarded by the buffer; 4) modifying the virtual threshold value of each queue every T moments; 5) the dequeue scheduler takes the data frame in the buffer away every cycle, return 2). The invention discards the data frame only when the buffer is full and sets the dynamic virtual threshold buffer for each queue, has the advantages of high utilization rate of buffer space and better fairness among the queues, and can be used for network switching equipment.)

基于动态虚拟门限的缓存管理方法

技术领域

本发明属于通信技术领域,特别涉及一种动态虚拟门限缓存管理方法,可用于网络交换设备。

背景技术

缓存管理是网络交换设备中的一项关键技术,一个良好的缓存管理方法可以提高交换设备中缓存资源的利用效率并且降低网络交换数据帧的丢帧率。

现有的缓存管理算法主要分为三类,分别是静态阈值策略、动态阈值策略、PUSH-OUT策略,其中:

静态阈值策略,为每个队列分配固定大小的缓存,当队列还有剩余缓存空间时到达这个队列的数据帧能够进入该队列缓存中,当队列没有剩余缓存空间时,到达这个队列的数据帧将会被丢弃。这种方法简单利于实现,但是这种缓存策略可能造成部分队列因到达数据帧数量过多占满了队列缓存而不得不丢弃到达的数据帧,而部分队列因到达数据帧数量过少,大量缓存空间被闲置的状况,这样既浪费缓存资源又会增加数据帧的丢弃概率。

动态阈值策略,为队列分配的缓存大小根据各个队列的实时业务流的大小而动态变化。这种缓存策略使得缓存大小能够实时适应网络的状况,但是缓存大小的改变值难以精确的匹配实时业务流所需占用的缓存大小,导致动态分配的缓存大小往往会大于实际业务流所需要的缓存大小,因此这种缓存策略会闲置掉一部分的缓存空间,影响缓存的使用效率。

PUSH-OUT策略,允许属于已没有缓存空间的队列的数据帧存放在还有剩余缓存空间的队列中,该策略只有在整个缓存空间满的时候才会丢弃数据帧,因此它具有较低的丢帧率。但是由于这种策略不能实时匹配各队列实时数据帧信息,当整个缓存空间满而丢弃数据帧时不能根据其他队列历史队列长度进行丢弃,缺乏一定的公平性。

发明内容

本发明的目的在于针对上述现有技术不足,提出一种基于动态虚拟门限的缓存管理方法,以保证在数据帧较低丢弃率的同时尽可能的保证各用户之间的公平性。

为实现上述目的,本发明的技术方案包括如下步骤:

(1)初始化缓存管理服务参数:

设缓存管理服务P个用户Ni,i从1到P;

设属于用户Ni的数据帧存放在高、中、低3个优先级队列中,每个优先级队列的虚拟门限值为Qij,j从1到3;

设属于用户Ni的每个优先级队列都有一个数据帧帧数加权比例Rij

设整个缓存空间能容纳的数据帧帧数为M,整个缓存空间实时容纳的数据帧帧数为MN;

设缓存管理的动态虚拟门限调整周期为T,T>0;

设虚拟门限静态初始值的比例系数为w,0<w<1;

设属于用户Ni的每一个优先级队列的上一个周期的数据帧帧数平均加权比例值为ROij

设属于用户Ni的每一个优先级队列的本周期的数据帧帧数平均加权比例值为RNij

设属于用户Ni的每一个高、中、低优先级队列的上一个周期的数据帧帧数平均加权比例ROi1、ROi2、ROi3的初始值均为0;

设属于用户Ni的各优先级队列的实时队列长度为lij

设计算属于P个用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值的比例系数为t1,计算属于P个用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值的固定偏移系数为t2

设计算属于P个用户高、中、低三个优先级队列的数据帧帧数加权比例Ri1、Ri2、Ri3的比例系数分别为k1、k2、k3

(2)数据帧到达缓存,如果此时MN等于M,则缓存空间已满执行(3),否则,缓存空间未满执行(6);

(3)将到达缓存的数据帧所属队列的实时队列长度lij与所属队列的虚拟门限值Qij相比较:如果lij≥Qij则丢弃掉该到达缓存的数据帧,如果lij<Qij,则执行(4);

(4)判断属于P个用户的所有低优先级队列里是否有队列长度li3超过其虚拟门限值Qi3的队列:如果有,则选择这个队列并丢弃这个选中队列的一个数据帧,然后执行(6),否则,执行(5);

(5)判断在属于P个用户的所有中优先级队列里是否有队列长度li2超过其虚拟门限值Qi2的队列:如果有,则选择这个队列并丢弃这个选中队列的一个数据帧,然后执行(6);否则,在属于P个用户的所有高优先级队列里面任选一个队列长度li3超过其虚拟门限值Qi3的队列,并丢弃这个选中队列的一个数据帧,然后执行(6);

(6)到达缓存的数据帧进入缓存空间;

(7)判断是否还有到达缓存的数据帧:如果还有到达缓存的数据帧,则执行(8),否则,出队调度器取出缓存中所有数据帧,该次缓存管理操作结束;

(8)每隔T时刻修改一次队列的虚拟门限值,即如果当前时刻为T的整数倍数,则需要修改队列的虚拟门限值,执行(9);否则,执行(2);

(9)在这个调度周期,分别计算属于P个用户高、中、低三个优先级队列的数据帧帧数加权比例Ri1、Ri2、Ri3

(10)根据(9)的结果,分别计算属于P个用户高、中、低三个优先级队列的本周期数据帧帧数平均加权比例值RNi1、RNi2、RNi3

RNi1=(1-w)×ROi1+w×Ri1

RNi2=(1-w)×ROi2+w×Ri2

RNi3=(1-w)×ROi3+w×Ri3

(11)根据(10)的结果,分别计算属于P个用户高、中、低三个优先级队列的动态虚拟门限值Qi1、Qi2、Qi3

Qi1=RNi1×t1+t2,Qi2=RNi2×t1+t2,Qi3=RNi3×t1+t2

(12)根据(10)的结果,分别计算属于P个用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值ROi1、ROi2、ROi3

ROi1=RNi1,ROi2=RNi2,ROi3=RNi3

(13)出队调度器取出缓存中所有数据帧,返回(2)。

本发明与现有技术相比,具有如下优点:

第一,由于本发明只在整个缓存空间全满时才丢弃数据帧,因此可以提高缓存空间的利用效率,减少数据帧丢弃概率。

第二,由于本发明根据不同用户队列历史使用缓存空间的大小为各用户队列设置了动态虚拟门限,这样在整个缓存空间满而不得不丢弃数据帧时,缓存管理器可以根据各用户队列虚拟门限大小丢弃部分队列长度超过其虚拟门限的队列的数据帧,这样可以提高各用户队列间的公平性。

附图说明

图1是本发明的实现总流程图;

图2是本发明的网络拓扑结构。

具体实施方式

以下结合附图对本发明的具体实施方式和效果作进一步详细描述。

参考图1,本实施例的实现步骤如下:

步骤1,初始化缓存管理服务参数。

设缓存管理服务P个用户Ni,本实例设缓存管理服务2个用户Ni,i从1到2;

设属于用户Ni的数据帧存放在高、中、低3个优先级队列中,每个优先级队列的虚拟门限值为Qij,j从1到3;

设属于用户Ni的每个优先级队列都有一个数据帧帧数加权比例Rij

设整个缓存空间能容纳的数据帧帧数为M,整个缓存空间实时容纳的数据帧帧数为MN,初始时刻,整个缓存空间没有数据帧即MN;

设缓存管理的动态虚拟门限调整周期为T,T>0;

设虚拟门限静态初始值的比例系数为w,0<w<1;

设属于用户Ni的每一个优先级队列的上一个周期的数据帧帧数平均加权比例值为ROij

设属于用户Ni的每一个优先级队列的本周期的数据帧帧数平均加权比例值为RNij

设属于用户Ni的每一个高、中、低优先级队列的上一个周期的数据帧帧数平均加权比例ROi1、ROi2、ROi3的初始值均为0;

设属于用户Ni的各优先级队列的实时队列长度为lij

设计算属于P个用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值的比例系数为t1,计算属于P个用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值的固定偏移系数为t2

设计算属于P个用户高、中、低三个优先级队列的数据帧帧数加权比例Ri1、Ri2、Ri3的比例系数分别为k1、k2、k3

步骤2,构建网络拓扑。

参考图2,网络拓扑结构由一个主用户和多个从用户组成。本实例的网络拓扑结构由一个主用户N0和两个从用户N1、N2组成,数据帧从主用户发往两个从用户,缓存管理位于主用户N0中。

本实施例总时长为三个周期时长,每个周期时长T=1088us。各周期主用户N0需要发送给第一从属用户N1的数据帧帧数如表1所示,各周期主用户N0需要发送给第二从属用户N2的数据帧帧数如表2所示。

表1 N0需要发送给N1的数据帧帧数

表2 N0需要发送给N2的数据帧帧数

步骤3,对到达数据帧的缓存进入情况做出判断。

固定长度的数据帧到达缓存后,对其是否能进入缓存空间进行判断:

如果整个缓存空间实时容纳的数据帧帧数MN小于整个缓存空间能容纳的数据帧帧数M,则数据帧能够进入缓存空间,执行步骤7;

如果整个缓存空间实时容纳的数据帧帧数MN超过整个缓存空间能容纳的数据帧帧数M,则执行步骤4。

在本发明实施例中,整个缓存空间能容纳的数据帧帧数M=100。

步骤4,判断是否丢弃该到达缓存的数据帧。

将到达缓存的数据帧所属队列的实时队列长度lij与所属队列的虚拟门限值Qij相比较:

如果到达缓存的数据帧所属队列的实时队列长度lij超过所属队列的虚拟门限值Qij,则丢弃该到达缓存的数据帧;

如果到达缓存的数据帧所属队列的实时队列长度lij未达到所属队列的虚拟门限值Qij,则执行步骤5。

步骤5,将低优先级队列长度与队列的虚拟门限值作比较。

判断属于N1、N2用户的所有低优先级队列里是否有队列长度li3超过其虚拟门限值Qi3的队列:如果有,则选择这个队列并丢弃这个选中队列的一个数据帧,然后执行步骤7,否则,执行步骤6。

步骤6,将中、高优先级队列长度与队列的虚拟门限值作比较。

判断属于N1、N2用户的所有中优先级队列里是否有队列长度li2超过其虚拟门限值Qi2的队列:如果有,则选择这个队列并丢弃这个选中队列的一个数据帧,然后执行步骤7;否则,在属于N1、N2用户的所有高优先级队列里任选一个队列长度li3超过其虚拟门限值Qi3的队列,并丢弃这个选中队列的一个数据帧,然后执行步骤7。

步骤7,到达缓存的数据帧进入缓存空间。

在本发明实施例中,第一个周期到达数据帧帧数和小于100,因此该周期所有数据帧都能进入缓存空间。第二个周期到达数据帧帧数和小于100,因此该周期所有数据帧也能进入缓存空间。第三周期到达前99个数据帧时,整个缓存空间实时容纳的数据帧帧数MN=99小于整个缓存空间能容纳的数据帧帧数M=100,也能进入缓存空间。第三周期后到达的4个属于用户N2的低优先级数据帧,因为此时整个缓存空间实时容纳的数据帧帧数MN不小于整个缓存空间能容纳的数据帧帧数M,并且此时属于用户N2的低优先级数据帧的队列实时队列长度l23=40超过所属队列的虚拟门限值Q23=6,因此丢弃这4个数据帧。

步骤8,判断数据帧到达缓存情况。

判断是否还有到达缓存的数据帧:如果还有到达缓存的数据帧,则执行步骤9,否则,出队调度器取出缓存中所有数据帧,该次缓存管理操作结束。

在本发明实施例中,只有第三个周期最后一个数据帧到达缓存以后才没有到达缓存的数据帧,因此,此时刻出队调度器取出缓存中所有数据帧,该次缓存管理操作结束。其他数据帧到达缓存以后都还有数据帧到达缓存,执行步骤9。

步骤9,判断是否修改队列的虚拟门限。

每隔T时刻修改一次队列的虚拟门限值,即如果当前时刻为T的整数倍数,则需要修改队列的虚拟门限值,执行步骤10;否则,返回步骤3。

在本发明实施例中,只有在第一周期的最后一刻和第二周期的最后一个时刻为T的整数倍,需要修改队列的虚拟门限,执行步骤10,在第一周期、第二周期和第三周期的其他时刻时,返回步骤3。

步骤10,计算属于N1、N2用户高、中、低三个优先级队列的数据帧帧数加权比例Ri1、Ri2、Ri3

属于N1、N2用户高、中、低三个优先级队列的数据帧帧数加权比例Ri1、Ri2、Ri3通过如下公式计算:

其中,a为当前周期到达属于所有用户的高优先级数据帧帧数,b为当前周期到达属于所有用户的中优先级数据帧帧数,c为当前周期到达属于所有用户的低优先级数据帧帧数,mi1为当前周期到达属于用户Ni的高优先级数据帧帧数,mi2为当前周期到达属于用户Ni的中优先级数据帧帧数,mi3为当前周期到达属于用户Ni的低优先级数据帧帧数。

若该周期属于N1、N2用户的高、中、低优先级数据帧帧数a、b、c均为0,则属于N1、N2用户高、中、低三个优先级队列的数据帧帧数加权比例R11、R12、R13、R21、R22、R23均为0。

在本发明实施例中,计算属于N1、N2用户的高、中、低三个优先级队列的数据帧帧数加权比例Ri1、Ri2、Ri3的比例系数k1=3、k2=2、k3=1。第一周期计算出的属于N1、N2用户高、中、低三个优先级队列的数据帧帧数加权比例如表3所示。第二周期计算出的属于N1、N2用户高、中、低三个优先级队列的数据帧帧数加权比例如表4所示。

表3第一周期计算出的数据帧帧数加权比例

表4第二周期计算出的数据帧帧数加权比例

步骤11,计算本周期数据帧帧数平均加权比例值。

根据步骤10的结果,分别计算属于N1、N2用户高、中、低三个优先级队列的本周期数据帧帧数平均加权比例值RNi1、RNi2、RNi3

RNi1=(1-w)×ROi1+w×Ri1

RNi2=(1-w)×ROi2+w×Ri2

RNi3=(1-w)×ROi3+w×Ri3

在本发明实施例中,虚拟门限静态初始值的比例系数w=0.5,第一周期计算出的属于N1、N2用户高、中、低三个优先级队列的本周期数据帧帧数平均加权比例值如表5所示。第二周期计算出的属于N1、N2用户高、中、低三个优先级队列的本周期数据帧帧数平均加权比例值如表6所示。

表5第一周期计算出的本周期数据帧帧数平均加权比例值

表6第二周期计算出的本周期数据帧帧数平均加权比例值

步骤12,计算队列的动态虚拟门限值。

根据步骤11的结果,分别计算属于N1、N2用户高、中、低三个优先级队列的动态虚拟门限值Qi1、Qi2、Qi3

Qi1=RNi1×t1+t2,Qi2=RNi2×t1+t2,Qi3=RNi3×t1+t2

在本发明实施例中,属于N1、N2用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值的比例系数为t1=70,属于N1、N2用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值的固定偏移系数为t2=5。第一周期计算出的属于N1、N2用户高、中、低三个优先级队列的动态虚拟门限值如表7所示。第二周期计算出的属于N1、N2用户高、中、低三个优先级队列的动态虚拟门限值如表8所示。

表7第一周期计算出的动态虚拟门限值

表8第二周期计算出的动态虚拟门限值

步骤13,计算队列的上一周期的数据帧帧数平均加权比例值ROi1、ROi2、ROi3

根据步骤11的结果,分别计算属于N1、N2用户高、中、低三个优先级队列上一周期的数据帧帧数平均加权比例值ROi1、ROi2、ROi3

ROi1=RNi1,ROi2=RNi2,ROi3=RNi3

在本发明实施例中,第一周期计算出的上一周期的数据帧帧数平均加权比例值如表9所示。第二周期计算出的上一周期的数据帧帧数平均加权比例值如表10所示。

表9第一周期计算出的上一周期的数据帧帧数平均加权比例值

表10第二周期计算出的上一周期的数据帧帧数平均加权比例值

步骤14,出队调度器取出缓存中所有数据帧,返回步骤3。

在本发明实施例中,第一周期出队调度器取出缓存中所有数据帧,返回步骤3,开始第二周期;第二周期出队调度器取出缓存中所有数据帧,返回步骤3,开始第三周期。

以上描述仅是本发明的一个具体事例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明的内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:可扩展部件的扩展控制方法、装置、存储介质及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类