CN104852863A - 一种共享缓存交换机中的动态阈值管理方法及装置 - Google Patents

一种共享缓存交换机中的动态阈值管理方法及装置 Download PDF

Info

Publication number
CN104852863A
CN104852863A CN201510179160.1A CN201510179160A CN104852863A CN 104852863 A CN104852863 A CN 104852863A CN 201510179160 A CN201510179160 A CN 201510179160A CN 104852863 A CN104852863 A CN 104852863A
Authority
CN
China
Prior art keywords
output port
event
signal
timer
counter
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
Application number
CN201510179160.1A
Other languages
English (en)
Other versions
CN104852863B (zh
Inventor
任丰原
单丹枫
蒋万春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201510179160.1A priority Critical patent/CN104852863B/zh
Publication of CN104852863A publication Critical patent/CN104852863A/zh
Application granted granted Critical
Publication of CN104852863B publication Critical patent/CN104852863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种共享缓存交换机中的动态阈值管理方法及装置,所述方法包括:根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值;并检测交换机的每个输出端口队列的数据包入队、出队和/或丢失事件是否发生;若检测到事件发生,则根据事件发生的输出端口的队列长度的变化,判断事件发生的输出端口是否过载;若过载,则限制事件发生的输出端口占用缓存的阈值为交换机中共享缓存的总大小;并监控事件发生的输出端口是否空载;若空载,则根据预设的动态阈值策略,限制事件发生的输出端口占用缓存的阈值,并执行检测交换机的每个输出端口队列的数据包入队、出队和/或丢失事件是否发生的步骤,直至交换机结束工作。本发明可吸收micro-burst流量。

Description

一种共享缓存交换机中的动态阈值管理方法及装置
技术领域
本发明涉及共享缓存交换机技术领域,具体涉及一种共享缓存交换机中的动态阈值管理方法及装置。
背景技术
在交换机中,当多个输入端口要同时向一个输出端口发送数据包时,并且多个输入端口总的发送速率大于输出端口的最大数据传输速率时,需要将数据包缓存在交换机内部。然而,交换机芯片上(on-chip)的缓存成本极高,而片下(off-chip)的缓存速度又很慢。
为了提高交换机缓存的利用率,同时保证存取的速度,现有的高速交换机往往利用统计复用的特点,让所有的输出端口都共享同一块缓存,即共享缓存结构。然而,当某一个输出端口负载量很大时,会占用大部分的共享缓存,使其它输出端口无法获取缓存,造成公平性问题。
为了解决公平性问题,必须对交换机的共享缓存进行管理。在历史上,曾经提出过诸多缓存管理策略。AK Choudhury等人提出的动态阈值(Dynamic Threshold,DT)策略就是其中之一,并且已经得到广泛地应用。
动态阈值策略与其它的缓存管理策略相比,具有结构简单(易于实现),适应性高的特点。动态阈值策略使用阈值来限制每一个输出端口能占用缓存的量。当过载的端口数目很少时,能让每一个端口能占用很大的缓存,以保证缓存利用率;当过载的端口数目很多时,又能保证每一个端口占用的缓存大小相同,以保证公平性,即阈值是动态可调节的阈值。
在数据中心网络中,micro-burst流量是一种常见的突发流量,其特点是持续时间短,现有共享缓存控制方法在遇到micro-burst流量时,易发生大量丢包现象,无法很好的吸收micro-burst流量。
发明内容
本发明所要解决的技术问题是在数据中心网络中,micro-burst流量是一种常见的突发流量,其特点是持续时间短,现有共享缓存控制方法在遇到micro-burst流量时,易发生大量丢包现象,无法很好的吸收micro-burst流量的问题。
为此目的,第一方面,本发明提出一种共享缓存交换机中的动态阈值管理方法,包括:
根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值;
在限制阈值之后,检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生;
若检测到事件发生,则根据所述事件发生的输出端口的队列长度的变化,判断所述事件发生的输出端口是否过载;
若判断所述事件发生的输出端口过载,则限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小;
在限制所述事件发生的输出端口占用缓存的阈值后,监控所述事件发生的输出端口是否空载;
若监控到所述事件发生的输出端口空载,则根据所述预设的动态阈值策略,限制所述事件发生的输出端口占用缓存的阈值,并执行所述检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生的步骤,直至所述交换机结束工作。
可选的,所述监控所述事件发生的输出端口是否空载,具体包括:
监控所述数据包出队事件是否连续发生以及所述数据包入队事件是否发生;
若所述数据包出队事件连续发生且所述数据包入队事件未发生,则判定所述事件发生的输出端口空载。
可选的,所述监控所述数据包出队事件是否连续发生以及所述数据包入队事件是否发生,具体包括:
启动第一计数器,以使所述第一计数器计算所述数据包出队事件连续发生的次数;
在监控到所述数据包出队事件发生时,使所述第一计数器的值加1,在监控到所述数据包入队事件发生时,重置所述第一计数器;
相应地,所述若所述数据包出队事件连续发生且所述数据包入队事件未发生,则判定所述事件发生的输出端口空载,包括:
若所述第一计数器的值达到第一预设值时,则判定所述事件发生的输出端口空载。
可选的,在所述限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小的步骤之后,所述方法还包括:
启动第二计时器,以使所述第二计时器从第二预设时长进行倒数计时;
相应地,所述监控所述事件发生的输出端口是否空载,具体包括:
在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载。
可选的,在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载的步骤之后,所述方法还包括:
若监控到所述事件发生的输出端口空载,重置所述第二计时器。
可选的,在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载的步骤之后,所述方法还包括:
若在所述第二计时器超时,没有监控到所述事件发生的输出端口空载,则重置所述第二计时器。
可选的,所述根据所述事件发生的输出端口的队列长度,判断所述事件发生的输出端口是否发生过载,具体包括:
判断所述事件发生的输出端口的队列长度是否持续增长以及数据包丢失事件是否发生;
若所述事件发生的输出端口的队列长度持续增长以及数据包丢失事件发生,则判定所述事件发生的输出端口过载。
可选的,所述判断所述事件发生的输出端口的队列长度是否持续增长以及数据包丢失事件是否发生,具体包括:
启动第二计数器,以使所述第二计数器计算队列的增长数;
在所述第二计数器的值第一次改变时,启动第一计时器,以使所述第一计时器从第一预设时长进行倒数计时;
在检测到数据包丢失事件发生时,对所述第二计数器清零;
相应地,所述判定所述事件发生的输出端口过载,具体包括:
在所述第一计时器倒数计时的时间段内,所述第二计数器的值达到第二预设值时,判定所述事件发生的输出端口过载并重置所述第一计时器;
在所述第一计时器倒数计时的时间段内,所述第二计数器的值没有达到第二预设值时,重置所述第二计数器。
第二方面,本发明还提出一种共享缓存交换机中的动态阈值管理装置,包括:处理器以及与所述处理器分别连接的多个控制器,所述控制器的个数由所述交换机的输出端口的个数确定,一个所述控制器连接一个所述输出端口;
所述处理器,用于根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值;
所述处理器,还用于在限制阈值之后,检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生;
所述控制器,用于在所述处理器检测到事件发生时,根据所述事件发生的输出端口的队列长度的变化,判断所述事件发生的输出端口是否过载;
所述处理器,还用于在所述控制器判断所述事件发生的输出端口过载时,限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小;
所述控制器,还用于在所述处理器限制所述事件发生的输出端口占用缓存的阈值后,监控所述事件发生的输出端口是否空载;
所述处理器,还用于在所述控制器监控到所述事件发生的输出端口空载时,根据所述预设的动态阈值策略,限制所述事件发生的输出端口占用缓存的阈值,并检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生,直至所述交换机结束工作。
可选的,所述控制器包括:
时钟发生器、第一计数器、第二计数器、第一计时器及第二计时器;
其中,所述时钟发生器分别连接所述第一计时器的时钟端和第二计时器的时钟端;
所述第一计数器的重置端的输入信号为第一信号与数据包入队信号经过逻辑或之后得到的信号,所述第一计数器的加1运算端的输入信号为数据包出队信号;其中,所述第一信号为所述第一计时器的输出信号与所述第二计时器的输出信号经过逻辑或之后得到的信号;所述数据包入队信号为所述处理器在检测到数据包入队事件发生时生成的信号;所述数据包出队信号为所述处理器在检测到数据包出队事件发生时生成的信号;
所述第二计数器的重置端的输入信号为所述第一计数器的输出信号、所述第一信号与数据包丢失信号经过逻辑或之后得到的信号,所述第二计数器的加1运算端的输入信号为数据包入队信号,所述第二计数器的减1运算端的输入信号为数据包出队信号;其中,所述数据包丢失信号为所述处理器在检测到数据包丢失事件发生时生成的信号;
所述第一计时器的重置端的输入信号为所述第一信号;
所述第二计时器的重置端的输入信号为所述第一计数器的输出信号,所述第二计时器的触发端的输入信号为所述第二计数器的输出信号;
所述第二计时器的输出信号为所述处理器的输入信号。
相比于现有技术,本发明的共享缓存交换机中的动态阈值管理方法及装置充分利用交换机的共享缓存,从而能够有效地吸收micro-burst,减少其丢包发生的概率,能适用于高速交换机中,可以解决现有共享缓存控制方法在遇到micro-burst流量时,易发生大量丢包现象,无法很好的吸收micro-burst流量的问题。
附图说明
图1为本发明实施例提供的一种共享缓存交换机中的动态阈值管理方法流程图;
图2为本发明实施例提供的一种共享缓存交换机中的动态阈值管理装置结构图;
图3为本发明实施例提供的一种控制器电路图,其中,C1为第一计数器,C2为第二计数器,T1为第一计时器,T2为第二计时器;
图4为本发明实施例提供的一种交换机的输出端口的状态转移图;
图5为本发明实施例提供的一种在micro-burst流量发生时,各输出端口的队长变化示意图;
图6为本发明实施例提供的一种在micro-burst流量发生时,交换机的共享缓存的利用率示意图;
图7为本发明实施例提供的一种在N=2且M=1时micro-burst流量的丢包率随micro-burst流量持续时间的变化示意图;
图8为本发明实施例提供的一种交换机各个输出端口队长的累积分布函数CDF示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本实施例公开一种共享缓存交换机中的动态阈值管理方法,该方法可包括以下步骤S1至S6:
S1、根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值。
S2、在限制阈值之后,检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生。
S3、若检测到事件发生,则根据所述事件发生的输出端口的队列长度的变化,判断所述事件发生的输出端口是否过载。
本实施例中,步骤S3具体包括图1中未示出的步骤S31和S32:
S31、判断所述事件发生的输出端口的队列长度是否持续增长以及数据包丢失事件是否发生;
S32、若所述事件发生的输出端口的队列长度持续增长以及数据包丢失事件发生,则判定所述事件发生的输出端口过载。
S4、若判断所述事件发生的输出端口过载,则限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小。
S5、在限制所述事件发生的输出端口占用缓存的阈值后,监控所述事件发生的输出端口是否空载。
本实施例中,步骤S5具体包括图1中未示出的步骤S51和S52
S51、监控所述数据包出队事件是否连续发生以及所述数据包入队事件是否发生;
S52、若所述数据包出队事件连续发生且所述数据包入队事件未发生,则判定所述事件发生的输出端口空载。
S6、若监控到所述事件发生的输出端口空载,则根据所述预设的动态阈值策略,限制所述事件发生的输出端口占用缓存的阈值,并执行步骤S2,直至所述交换机结束工作。
在一个具体的例子中,步骤S51具体包括图1中未示出的步骤S511和S512:
S511、启动第一计数器,以使所述第一计数器计算所述数据包出队事件连续发生的次数;
S512、在监控到所述数据包出队事件发生时,使所述第一计数器的值加1,在监控到所述数据包入队事件发生时,重置所述第一计数器;
相应地,步骤S51具体包括:若所述第一计数器的值达到第一预设值时,则判定所述事件发生的输出端口空载。
在一个具体的例子中,步骤S4之后,上述方法还可包括图1中未示出的步骤S4’:
S4’、启动第二计时器,以使所述第二计时器从第二预设时长进行倒数计时;
相应地,步骤S5具体包括:在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载。
在一个具体的例子中,在步骤S5之后,所述方法还包括:
若监控到所述事件发生的输出端口空载,重置所述第二计时器。
在一个具体的例子中,在步骤S5之后,所述方法还包括:
若在所述第二计时器超时,没有监控到所述事件发生的输出端口空载,则重置所述第二计时器。
在一个具体的例子中,步骤S31具体包括以下图1中未示出的步骤S311至S313:
S311、启动第二计数器,以使所述第二计数器计算队列的增长数;
S312、在所述第二计数器的值第一次改变时,启动第一计时器,以使所述第一计时器从第一预设时长进行倒数计时;
S313、在检测到数据包丢失事件发生时,对所述第二计数器清零;
相应地,步骤S32具体包括图1中未示出的步骤S321和S322:
S321、在所述第一计时器倒数计时的时间段内,所述第二计数器的值达到第二预设值时,判定所述事件发生的输出端口过载并重置所述第一计时器;
S322、在所述第一计时器倒数计时的时间段内,所述第二计数器的值没有达到第二预设值时,重置所述第二计数器。
如图2所示,本实施例公开一种共享缓存交换机中的动态阈值管理装置,该装置包括:处理器以及与所述处理器分别连接的多个控制器,所述控制器的个数由所述交换机的输出端口的个数确定,一个所述控制器连接一个所述输出端口;
所述处理器,用于根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值;
所述处理器,还用于在限制阈值之后,检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生;
所述控制器,用于在所述处理器检测到事件发生时,根据所述事件发生的输出端口的队列长度的变化(简称队长的变化),判断所述事件发生的输出端口是否过载;
所述处理器,还用于在所述控制器判断所述事件发生的输出端口过载时,限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小;
所述控制器,还用于在所述处理器限制所述事件发生的输出端口占用缓存的阈值后,监控所述事件发生的输出端口是否空载;
所述处理器,还用于在所述控制器监控到所述事件发生的输出端口空载时,根据所述预设的动态阈值策略,限制所述事件发生的输出端口占用缓存的阈值,并检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生,如果发生,则向发生事件的输出端口所对应的控制器发送一个脉冲信号,直至所述交换机结束工作,所述脉冲信号可以为:数据包入队信号、数据包出队信号或数据包丢失信号。
如图3所示,本实施例公开一种控制器,该控制器可包括:时钟发生器(Oscillator)、第一计数器(C1)、第二计数器(C2)、第一计时器(T1)及第二计时器(T2);
其中,所述时钟发生器分别连接所述第一计时器的时钟端(clk)和第二计时器的时钟端;
所述第一计数器的重置端(reset)的输入信号为第一信号与数据包入队信号经过逻辑或(图3中的逻辑或门)之后得到的信号,所述第一计数器的加1运算端(inc)的输入信号为数据包出队信号;其中,所述第一信号为所述第一计时器的输出端(out)的输出信号与所述第二计时器的输出信号经过逻辑或之后得到的信号;所述数据包入队信号(enqueue)为所述处理器在检测到数据包入队事件发生时生成的信号;所述数据包出队信号(dequeue)为所述处理器在检测到数据包出队事件发生时生成的信号;
所述第二计数器的重置端的输入信号为所述第一计数器的输出信号、所述第一信号与数据包丢失信号经过逻辑或之后得到的信号,所述第二计数器的加1运算端的输入信号为数据包入队信号,所述第二计数器的减1运算端(dec)的输入信号为数据包出队信号;其中,所述数据包丢失信号(drop)为所述处理器在检测到数据包丢失事件发生时生成的信号;
所述第一计时器的重置端的输入信号为所述第一信号;
所述第二计时器的重置端的输入信号为所述第一计数器的输出信号,所述第二计时器的触发端(trigger)的输入信号为所述第二计数器的输出信号;
所述第二计时器的输出信号为所述处理器的输入信号。
本实施例中的控制器的工作流程如下:
当第一计数器的加1运算端收到一个脉冲信号时,第一计数器的值加1;当第一计数器的重置端收到一个脉冲信号时,第一计数器的值重置为0。
当第二计数器的加1运算端收到一个脉冲信号时,第二计数器的值加1;当第二计数器的减1运算端收到一个脉冲信号时,如果第二计数器的值不为0,则第二计数器的值减1,否则第二计数器的值不变;当第二计数器的重置端收到一个脉冲信号时,第二计数器的值重置为0。
当第一计时器的重置端收到一个脉冲信号时,第一计时器重新从第一预设时长开始倒数计时;当第一计时器倒数计时完毕时,从输出端输出一个脉冲信号;第一计时器重新从第一预设时长开始倒数计时。
当第二计时器的触发端收到一个脉冲信号时,第二计时器从第二预设时长开始倒数计时;当第二计时器的重置端收到一个脉冲信号时,第二计时器停止工作;当第二计时器计时完毕时,第二计时器停止工作;当第二计时器工作时,输出信号为1;当第二计时器停止工作时,输出信号为0。
在图3中,整个电路的输出控制输出端口能占用缓存大小的阈值,当输出为1时,阈值设为B,B为交换机共享缓存的总大小,否则阈值由动态阈值策略来确定。下面将一一介绍各个部件的工作原理:
与电路的输出信号直接相连的是第二计时器T2。T2用于控制输出端口处于无控态的时间。它有3个输入引脚:触发引脚(trigger)、时钟引脚(clk)以及重置引脚(reset)。当触发引脚接收到一个脉冲时,T2开始倒数计时,直到倒数计时到0。当T2倒数计时到0时,T2停止工作。当T2在倒数计时时,其输出信号设为1;否则其输出设为0。T2的计时时间由micro-burst的持续时间来决定。一般设为1~10ms。
第二计数器C2用于检测输出端口是否处于过载状态。C2的计数值代表的是该输出端口的队列的增长值。当入队信号中收到一个脉冲时,C2的计数值会加1;当出队信号中收到一个脉冲时,如果C2的计数值不为0,则C2的计数值会减1。当C2计数到一定的临界值时,该策略就检测出输出端口已经处于过载状态;此时,它会发送一个脉冲信号给T2,使输出端口转换到无控态,同时,将计数值清零。由于丢包(数据包丢失)意味着输出端口并不是出于过载状态,因此一旦丢包信号收到一个脉冲信号,C2将会被重置。C2计数的临界值cn2由如下方法决定:假设到达输出端口的流量的到达速度为R,链路容量为C。为了保证C2在达到临界值时,输出端口的队列并没有因为超过阈值而丢包,cn2必须满足如下条件:
cn2≤(R-C)·t1
其中t1为队列长度超过阈值所要的时间,如果假设已经处于过载状态的输出端口数目为N,从空载状态转换为过载状态的输出端口数为M,那么
t 1 = αB [ 1 + α ( M + N ) ] ( R - C )
由于
( R - C ) · t 1 > lim R → ∞ [ ( R - C ) · t 1 ] ≥ 4 αB ( 2 + αP ) 2
故cn2需要满足条件
c n 2 ≤ 4 αB ( 2 + αP ) 2
因此cn2的临界值设为其中,B为交换机共享缓存的总大小,α可根据实际情况人为设定,P为输出端口的数量,且M+N≤P。
第一计时器T1用于保证T2只会被突发的流量所触发。因为当该端口的到达流量的到达速度过低时,并不会有包被丢弃。如果在这种情况下发生频繁的状态转移,会发生不可预知的结果。T1的工作原理如下:当C2开始增加其计数值时,T1开始从一定的初始值进行倒数计时。如果T1倒数计时到0时,C2还未计数到其临界值,T1会通过发送一个脉冲信号来重置C2,同时再次从初始值进行倒数计时;否则,T1将会重置,并且再次开始倒数计时。当到达的突发流量的持续时间d满足下式时,不会发生丢包:
d < t 1 = &alpha;B [ 1 + &alpha; ( M + N ) ] ( R - C )
( R - C ) < &alpha;B [ 1 + &alpha; ( M + N ) ] &CenterDot; d
&alpha;B [ 1 + &alpha; ( M + N ) ] &CenterDot; d &GreaterEqual; &alpha;B [ 1 + &alpha;P ] &CenterDot; d
因此在满足下式的情况下,并不会发生丢包现象
( R - C ) < &alpha;B [ 1 + &alpha;P ] &CenterDot; d
设C2从0增加到cn2的时间为的倒数计时时间为tc2,则如果tc2满足下式时,不会发生丢包:
t c 2 > cn 2 &alpha;B / [ ( 1 + &alpha;P ) &CenterDot; d ] = 4 ( 1 + &alpha;P ) ( 2 + &alpha;P ) 2 &CenterDot; d
因此T1初值设为
第一计数器C1用于检测输出端口是否已经回到空载状态。一方面,当端口处于过载状态时,其队列并不会持续增长,因为输出端口在一直不停地发送数据包,因此队列会呈锯齿形增长;另一方面,如果队列持续地下降,该端口就已经处于空载状态了。C1就用于记录连续出队的包的数目。当出队信号收到一个脉冲时,C1的计数值加1;当入队信号收到一个脉冲时,C1将会被重置,即其计数值清零。当C1的计数值达到一个临界值时,它会输出一个脉冲信号,使C2重置,同时C1的计数值清零。临界值一般设为2~10。
Ns-2上的仿真结果验证了本实施例的效果。仿真的主要参数如表1所示。
表1 仿真的主要参数
图4示出了交换机的输出端口的状态转移图,输出端口共两个状态:控制态和无控态。在控制态中,交换机中的每一个输出端口所能占用的缓存大小受到了动态阈值策略的限制;而在无控态时,通过将该输出端口的阈值设为B(共享缓存的总大小),可以使该端口能暂时占用大量的共享缓存。在一开始,交换机的所有输出端口都处于控制态。当突发流量到达某一个输出端口时,该输出端口会转向无控态。由于长时间处于无控态会导致公平性问题,因此,通过第二计时器来控制输出端口处于无控态的时间。当第二计时器超时时,输出端口马上回到控制态。若到达的突发流量是micro-burst流量的话,端口将在很短的时间之后进入空载状态,此时,端口马上会回到控制态。
图5为在micro-burst流量发生时,各输出端口的队长变化示意图;在0.15s时,micro-burst流量到达输出端口3,输出端口3处于过载状态后,其可以占用尽可能多的共享缓存,以吸收micro-burst。而micro-burst结束时,输出端口3的队长又重新被动态阈值策略所限制。
图6为在micro-burst流量发生时,交换机的共享缓存的利用率示意图;图中可见,原来的动态阈值策略(DT)在M和N均很小的情况下,并不能有效地利用交换机的共享缓存,而本发明实施例提供的方法(可称为增强型动态阈值策略(EDT))的利用率为100%,说明丢包时缓存已经被完全占满,此时丢包是无法避免的。
图7为在N=2且M=1时micro-burst流量的丢包率随micro-burst流量持续时间的变化示意图;图中可见,动态阈值策略(DT)下在micro-burst持续时间为2ms时就发生了丢包。而增强型动态阈值策略(EDT)下micro-burst的持续时间达到8ms才会发生丢包。
为了评价共享缓存交换机中的动态阈值管理方法(增强型动态阈值策略)的公平性,使一个端口从空载状态转变为过载状态,由此来查看这个端口是否对其它已经处于过载状态的端口占用的缓存产生影响,到达流量的持续时间设为1ms。图8显示了交换机各个输出端口队长的累积分布函数CDF图。图中可见,各个端口所占用的缓存量基本保持一致。由此可见某一个端口从空载转换为过载状态并不会对其它端口占用的缓存产生影响。因此,增强型动态阈值能很好地保证公平性。
需要说明的是,在本文中,所述“第一”和“第二”仅仅用来区分不同实体或预设值,而不是暗示实体或预设值这之间的关系或者顺序。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种共享缓存交换机中的动态阈值管理方法,其特征在于,包括:
根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值;
在限制阈值之后,检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生;
若检测到事件发生,则根据所述事件发生的输出端口的队列长度的变化,判断所述事件发生的输出端口是否过载;
若判断所述事件发生的输出端口过载,则限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小;
在限制所述事件发生的输出端口占用缓存的阈值后,监控所述事件发生的输出端口是否空载;
若监控到所述事件发生的输出端口空载,则根据所述预设的动态阈值策略,限制所述事件发生的输出端口占用缓存的阈值,并执行所述检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生的步骤,直至所述交换机结束工作。
2.根据权利要求1所述的方法,其特征在于,所述监控所述事件发生的输出端口是否空载,具体包括:
监控所述数据包出队事件是否连续发生以及所述数据包入队事件是否发生;
若所述数据包出队事件连续发生且所述数据包入队事件未发生,则判定所述事件发生的输出端口空载。
3.根据权利要求2所述的方法,其特征在于,所述监控所述数据包出队事件是否连续发生以及所述数据包入队事件是否发生,具体包括:
启动第一计数器,以使所述第一计数器计算所述数据包出队事件连续发生的次数;
在监控到所述数据包出队事件发生时,使所述第一计数器的值加1,在监控到所述数据包入队事件发生时,重置所述第一计数器;
相应地,所述若所述数据包出队事件连续发生且所述数据包入队事件未发生,则判定所述事件发生的输出端口空载,包括:
若所述第一计数器的值达到第一预设值时,则判定所述事件发生的输出端口空载。
4.根据权利要求1所述的方法,其特征在于,在所述限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小的步骤之后,所述方法还包括:
启动第二计时器,以使所述第二计时器从第二预设时长进行倒数计时;
相应地,所述监控所述事件发生的输出端口是否空载,具体包括:
在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载。
5.根据权利要求4所述的方法,其特征在于,在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载的步骤之后,所述方法还包括:
若监控到所述事件发生的输出端口空载,重置所述第二计时器。
6.根据权利要求5所述的方法,其特征在于,在所述第二计时器倒数计时的时间段内,监控所述事件发生的输出端口是否空载的步骤之后,所述方法还包括:
若在所述第二计时器超时,没有监控到所述事件发生的输出端口空载,则重置所述第二计时器。
7.根据权利要求1所述的方法,其特征在于,所述根据所述事件发生的输出端口的队列长度,判断所述事件发生的输出端口是否发生过载,具体包括:
判断所述事件发生的输出端口的队列长度是否持续增长以及数据包丢失事件是否发生;
若所述事件发生的输出端口的队列长度持续增长以及数据包丢失事件发生,则判定所述事件发生的输出端口过载。
8.根据权利要求7所述的方法,其特征在于,所述判断所述事件发生的输出端口的队列长度是否持续增长以及数据包丢失事件是否发生,具体包括:
启动第二计数器,以使所述第二计数器计算队列的增长数;
在所述第二计数器的值第一次改变时,启动第一计时器,以使所述第一计时器从第一预设时长进行倒数计时;
在检测到数据包丢失事件发生时,对所述第二计数器清零;
相应地,所述判定所述事件发生的输出端口过载,具体包括:
在所述第一计时器倒数计时的时间段内,所述第二计数器的值达到第二预设值时,判定所述事件发生的输出端口过载并重置所述第一计时器;
在所述第一计时器倒数计时的时间段内,所述第二计数器的值没有达到第二预设值时,重置所述第二计数器。
9.一种共享缓存交换机中的动态阈值管理装置,其特征在于,包括:处理器以及与所述处理器分别连接的多个控制器,所述控制器的个数由所述交换机的输出端口的个数确定,一个所述控制器连接一个所述输出端口;
所述处理器,用于根据预设的动态阈值策略,限制交换机中每个输出端口占用缓存的阈值;
所述处理器,还用于在限制阈值之后,检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生;
所述控制器,用于在所述处理器检测到事件发生时,根据所述事件发生的输出端口的队列长度的变化,判断所述事件发生的输出端口是否过载;
所述处理器,还用于在所述控制器判断所述事件发生的输出端口过载时,限制所述事件发生的输出端口占用缓存的阈值为所述交换机中共享缓存的总大小;
所述控制器,还用于在所述处理器限制所述事件发生的输出端口占用缓存的阈值后,监控所述事件发生的输出端口是否空载;
所述处理器,还用于在所述控制器监控到所述事件发生的输出端口空载时,根据所述预设的动态阈值策略,限制所述事件发生的输出端口占用缓存的阈值,并检测所述交换机的每个输出端口队列的数据包入队事件、数据包出队事件和/或数据包丢失事件是否发生,直至所述交换机结束工作。
10.根据权利要求9所述的装置,其特征在于,所述控制器包括:
时钟发生器、第一计数器、第二计数器、第一计时器及第二计时器;
其中,所述时钟发生器分别连接所述第一计时器的时钟端和第二计时器的时钟端;
所述第一计数器的重置端的输入信号为第一信号与数据包入队信号经过逻辑或之后得到的信号,所述第一计数器的加1运算端的输入信号为数据包出队信号;其中,所述第一信号为所述第一计时器的输出信号与所述第二计时器的输出信号经过逻辑或之后得到的信号;所述数据包入队信号为所述处理器在检测到数据包入队事件发生时生成的信号;所述数据包出队信号为所述处理器在检测到数据包出队事件发生时生成的信号;
所述第二计数器的重置端的输入信号为所述第一计数器的输出信号、所述第一信号与数据包丢失信号经过逻辑或之后得到的信号,所述第二计数器的加1运算端的输入信号为数据包入队信号,所述第二计数器的减1运算端的输入信号为数据包出队信号;其中,所述数据包丢失信号为所述处理器在检测到数据包丢失事件发生时生成的信号;
所述第一计时器的重置端的输入信号为所述第一信号;
所述第二计时器的重置端的输入信号为所述第一计数器的输出信号,所述第二计时器的触发端的输入信号为所述第二计数器的输出信号;
所述第二计时器的输出信号为所述处理器的输入信号。
CN201510179160.1A 2015-04-15 2015-04-15 一种共享缓存交换机中的动态阈值管理方法及装置 Active CN104852863B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510179160.1A CN104852863B (zh) 2015-04-15 2015-04-15 一种共享缓存交换机中的动态阈值管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510179160.1A CN104852863B (zh) 2015-04-15 2015-04-15 一种共享缓存交换机中的动态阈值管理方法及装置

Publications (2)

Publication Number Publication Date
CN104852863A true CN104852863A (zh) 2015-08-19
CN104852863B CN104852863B (zh) 2018-04-10

Family

ID=53852227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510179160.1A Active CN104852863B (zh) 2015-04-15 2015-04-15 一种共享缓存交换机中的动态阈值管理方法及装置

Country Status (1)

Country Link
CN (1) CN104852863B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107347039A (zh) * 2016-05-05 2017-11-14 深圳市中兴微电子技术有限公司 一种共享缓存空间的管理方法及装置
CN109660463A (zh) * 2017-10-11 2019-04-19 华为技术有限公司 一种拥塞流识别方法及网络设备
US10587486B2 (en) 2018-04-30 2020-03-10 Hewlett Packard Enterprise Development Lp Detecting microbursts
CN113507423A (zh) * 2021-04-25 2021-10-15 清华大学 流量感知的交换机共享缓存调度方法及装置
TWI748613B (zh) * 2020-08-27 2021-12-01 瑞昱半導體股份有限公司 交換機
CN114244738A (zh) * 2021-12-16 2022-03-25 杭州奥博瑞光通信有限公司 一种交换机缓存调度方法以及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6515963B1 (en) * 1999-01-27 2003-02-04 Cisco Technology, Inc. Per-flow dynamic buffer management
US20060155938A1 (en) * 2005-01-12 2006-07-13 Fulcrum Microsystems, Inc. Shared-memory switch fabric architecture
CN101483593A (zh) * 2009-02-13 2009-07-15 中兴通讯股份有限公司 一种交换设备中基于聚合链路分配缓存的方法及装置
US7830793B2 (en) * 2004-10-22 2010-11-09 Cisco Technology, Inc. Network device architecture for consolidating input/output and reducing latency
CN102025631A (zh) * 2010-12-15 2011-04-20 中兴通讯股份有限公司 一种动态调整出端口缓存的方法及交换机
WO2014046930A1 (en) * 2012-09-18 2014-03-27 Cisco Technology, Inc. Real time and high resolution buffer occupancy monitoring and recording

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6515963B1 (en) * 1999-01-27 2003-02-04 Cisco Technology, Inc. Per-flow dynamic buffer management
US7830793B2 (en) * 2004-10-22 2010-11-09 Cisco Technology, Inc. Network device architecture for consolidating input/output and reducing latency
US20060155938A1 (en) * 2005-01-12 2006-07-13 Fulcrum Microsystems, Inc. Shared-memory switch fabric architecture
CN101483593A (zh) * 2009-02-13 2009-07-15 中兴通讯股份有限公司 一种交换设备中基于聚合链路分配缓存的方法及装置
CN102025631A (zh) * 2010-12-15 2011-04-20 中兴通讯股份有限公司 一种动态调整出端口缓存的方法及交换机
WO2014046930A1 (en) * 2012-09-18 2014-03-27 Cisco Technology, Inc. Real time and high resolution buffer occupancy monitoring and recording

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107347039A (zh) * 2016-05-05 2017-11-14 深圳市中兴微电子技术有限公司 一种共享缓存空间的管理方法及装置
CN107347039B (zh) * 2016-05-05 2020-02-21 深圳市中兴微电子技术有限公司 一种共享缓存空间的管理方法及装置
CN109660463A (zh) * 2017-10-11 2019-04-19 华为技术有限公司 一种拥塞流识别方法及网络设备
US11146489B2 (en) 2017-10-11 2021-10-12 Huawei Technologies Co., Ltd. Congestion flow identification method and network device
US10587486B2 (en) 2018-04-30 2020-03-10 Hewlett Packard Enterprise Development Lp Detecting microbursts
TWI748613B (zh) * 2020-08-27 2021-12-01 瑞昱半導體股份有限公司 交換機
US12120038B2 (en) 2020-08-27 2024-10-15 Realtek Semiconductor Corp. Switch and scheduling method for packet forwarding of the same
CN113507423A (zh) * 2021-04-25 2021-10-15 清华大学 流量感知的交换机共享缓存调度方法及装置
CN113507423B (zh) * 2021-04-25 2024-07-12 清华大学 流量感知的交换机共享缓存调度方法及装置
CN114244738A (zh) * 2021-12-16 2022-03-25 杭州奥博瑞光通信有限公司 一种交换机缓存调度方法以及系统

Also Published As

Publication number Publication date
CN104852863B (zh) 2018-04-10

Similar Documents

Publication Publication Date Title
CN104852863A (zh) 一种共享缓存交换机中的动态阈值管理方法及装置
CN103838659B (zh) 一种系统日志的控制方法和装置
CN102904766B (zh) 串行通信波特率识别方法、装置及监控设备
Shan et al. Absorbing micro-burst traffic by enhancing dynamic threshold policy of data center switches
US7061868B1 (en) Method for flow control in a switch and a switch controlled thereby
CN103823780A (zh) 一种实时现场总线控制调度方法
CN103577294B (zh) 用于互连跟踪的方法和装置
CN110298185A (zh) 一种模型训练方法、装置、电子设备及存储介质
CN109921915A (zh) 测试实时时钟模块唤醒功能的方法、装置及电子设备
CN105554517B (zh) 一种视频流发送方法及装置
CN116074267B (zh) 一种数据通信系统及SoC芯片
CN109412879A (zh) 端口状态参数获取方法、装置及传输设备、存储介质
CN103701721B (zh) 报文传输方法及装置
CN103368838B (zh) 一种基于加权社交图的容迟网络转发方法
CN106789723A (zh) 多核网络转发限速的方法和装置
CN101847114B (zh) 一种监测信号电平的实现方法
CN113890842A (zh) 一种信息传输时延上界计算方法、系统、设备和存储介质
CN104065587A (zh) 基于fpga的智能变电站网络风暴处理模块及解决方法
CN102821423B (zh) 报文接收方法及装置
CN106487608B (zh) 测量远端时间戳单位的方法和装置
CN109117271A (zh) 自动调节cpu负载的方法、存储介质及终端设备
CN104657230A (zh) 应用于单片机的定时器系统及其处理方法
CN102368687B (zh) 防丢包统计方法及装置
CN107864026A (zh) 聚合链路帧丢失测量装置及方法
CN208128225U (zh) 一种共用振荡器频率输出电路及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant