
1.本发明涉及交换机共享缓存技术领域,特别涉及一种流量感知的交换机共享缓存调度方法及装置。
背景技术:2.在计算机网络中,交换机缓存用于吸收到达交换机端口的不均匀流量。为了提升缓存使用效率,目前常用的商用交换机通常使用片上共享缓存(on
‑
chipsharedmemory),同一交换机所有的出端口共享统一个缓存区,不同端口对于共享缓存区进行统计复用。由于全部端口共享缓存,当交换机的某些端口负载较大时,可能出现部分端口占用全部缓存而其他端口无法使用缓存的情况,造成端口之间的不公平现象,为了避免上述不公平现象,需要通过共享缓存调度策略对共享缓存进行管理。
3.当前主流的共享缓存调度策略为a.k.choudhury等人提出的动态阈值策略(dynamic threshold policy)及其改进策略,该类策略将全部端口共用的动态阈值设置为任意时刻未被使用的缓存总量的一定比例,动态阈值随缓存使用量的变化而变化。动态阈值类策略具有结构简单,易于实现的特点,目前被商用交换机制造商所广泛使用。
4.动态阈值类方法由于缺乏对端口流量感知能力而导致的无效缓存占用问题。当前网络中存在对于数据包丢失敏感的突发流量,其特点为持续时间短但传输速度快,以及对于仅吞吐率敏感的长期流量。现有的动态阈值类方案由于缺乏端口流量感知能力,导致不需要使用缓存资源的长期流量长期占用缓存,导致需要缓存资源的突发流量无法使用足够缓存。
技术实现要素:5.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
6.为此,本发明的一个目的在于提出一种流量感知的交换机共享缓存调度方法,该方法通过交换机端口事件信号判断端口流量状态,并根据实时端口流量状态决定交换机端口控制状态,使用端口控制状态控制端口缓存阈值,从而达到基于交换机端口流量对交换机共享缓存进行分配的目的。
7.本发明的另一个目的在于提出一种流量感知的交换机共享缓存调度装置。
8.为达到上述目的,本发明一方面实施例提出了一种流量感知的交换机共享缓存调度方法,包括:
9.s1,根据交换机各出端口流量状态设置各交换机出端口的缓存阈值;
10.s2,监测交换机每个出端口是否发生数据包入队列、数据包出队列、数据包丢失、缓存溢出以及端口队列状态变化事件;
11.s3,根据出端口所发生的事件以及相应端口队列状态信息,判断该出端口的流量状态;
12.s4,根据所述出端口的流量状态,设置端口控制状态;
13.s5,根据所述端口控制状态,调整对应出端口的缓存阈值,执行s2继续监测,直至交换机停止工作。
14.为达到上述目的,本发明另一方面实施例提出了一种流量感知的交换机共享缓存调度装置,包括:
15.初始化模块,用于根据交换机各出端口流量状态设置各交换机出端口的缓存阈值;
16.监测模块,用于监测交换机每个出端口是否发生数据包入队列、数据包出队列、数据包丢失、缓存溢出以及端口队列状态变化事件;
17.判断模块,用于根据出端口所发生的事件以及相应端口队列状态信息,判断该出端口的流量状态;
18.设置模块,用于根据所述出端口的流量状态,设置端口控制状态;
19.调整模块,用于根据所述端口控制状态,调整对应出端口的缓存阈值,继续监测,直至交换机停止工作。
20.本发明实施例的流量感知的交换机共享缓存调度方法及装置,通过交换机端口事件信号判断端口流量状态,并根据实时端口流量状态决定交换机端口控制状态,使用端口控制状态控制端口缓存阈值,从而达到基于交换机端口流量对交换机共享缓存进行分配的目的。可以通过对端口流量的实时监测,对不同端口根据其需求进行差异化管理,从而有效提升交换机共享缓存的使用效率。
21.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
22.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
23.图1为根据本发明一个实施例的流量感知的交换机共享缓存调度方法流程图;
24.图2为根据本发明一个实施例的端口控制状态由端口流量状态触发转移的状态转移图;
25.图3为根据本发明一个实施例的判断端口流量状态的逻辑电路图;
26.图4为根据本发明一个实施例的流量感知的交换机共享缓存调度装置结构示意图。
具体实施方式
27.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
28.下面参照附图描述根据本发明实施例提出的流量感知的交换机共享缓存调度方法及装置。
29.首先将参照附图描述根据本发明实施例提出的流量感知的交换机共享缓存调度方法。
30.图1为根据本发明一个实施例的流量感知的交换机共享缓存调度方法流程图。
31.如图1所示,该流量感知的交换机共享缓存调度方法包括以下步骤:
32.步骤s1,根据交换机端口流量状态设置缓存阈值,限制交换机每个出端口能够使用的缓存的阈值,从而完成对交换机中共享缓存资源在不同出端口之间的分配。
33.步骤s2,在交换机运行过程中,实时监测该交换机每个出端口的数据包入队列、数据包出队列、数据包丢失、缓存溢出以及端口队列状态变化事件是否发生。
34.步骤s3,若检测到步骤s2事件发生,根据所发生的事件以及相应端口队列状态信息,判断该端口的流量状态为轻载、重载或过载。
35.进一步地,根据出端口所发生的事件判断交换机出端口是否在轻载、过载、重载状态进行状态转移:
36.连续数据包入队事件触发由轻载到重载的状态转移;
37.连续数据包出队事件触发由重载到轻载的状态转移;
38.连续数据包丢失事件触发由重载到过载的状态转移;
39.连续数据包出队事件或端口队列长度小于预设阈值事件触发由过载到轻载的状态转移。
40.步骤s4,根据上述端口流量状态,决定当前端口的控制状态为普通状态、吸收状态或排空状态。
41.进一步地,端口流量状态被用于决定端口控制状态,具体如下:
42.当端口由轻载状态进入重载状态时,端口控制状态设置为吸收状态;
43.当端口由重载状态进入轻载状态时,端口控制状态设置为普通状态;
44.当端口由重载状态进入过载状态时,端口控制状态设置为吸收状态;
45.当端口由过载状态进入轻载状态时,端口控制状态设置为普通状态。
46.步骤s5,基于端口控制状态,调整交换机该端口的缓存阈值,改变该端口能够使用的缓存的上限,并重复执行上述交换机出端口队列事件监测步骤,直到交换机停止工作。
47.如图2所示,通过对端口实时流量状态的监控实现对端口控制状态的转移,根据不同的端口控制状态,交换机端口缓存阈值由以下公式进行计算,包括:
[0048][0049]
其中,t
i
(t)为端口i在t时刻的缓存阈值,α为控制参数,b为交换机共享缓存总量,q
j
(t)为口i在t时刻的队列长度,n为交换机端口总数,n
′
为交换机处于重载状态的端口数。
[0050]
可以理解的是,在实际应用中,通过交换机端口事件对流量模式形成感知,根据对流量状态的判断进行端口缓存阈值决策,对不同端口的缓存分配进行差异化决策。
[0051]
如图3所示,对实时流量状态的判断方法参考图3所示的判断端口流量状态的逻辑电路,该电路由交换机端口数据包进队、数据包出队、数据包丢失、缓存溢出、队列状态变更等事件触发,由计数器,比较器和触发器组成,其中各部分具体功能如下:
[0052]
计数器1用于对数据包出队进行计数,功能为判断交换机端口是否重载。
[0053]
计数器2用于对数据包出队进行计数,功能为判断交换机端口是否轻载。
[0054]
计数器3用于对数据包出队进行计数,功能为判断交换机端口是否轻载。
[0055]
计数器4用于对数据包进队进行计数,功能为判断交换机端口是否重载。
[0056]
计数器5对数据包丢失进行计数,功能为判断交换机端口是否过载。
[0057]
触发器1与触发器2用于输出实时信号。
[0058]
比较器比较当前端口队列长度与一个预设的下界值,功能为判断交换机端口是否轻载。
[0059]
根据本发明实施例提出的流量感知的交换机共享缓存调度方法,通过交换机端口事件信号判断端口流量状态,并根据实时端口流量状态决定交换机端口控制状态,使用端口控制状态控制端口缓存阈值,从而达到基于交换机端口流量对交换机共享缓存进行分配的目的。可以通过对端口流量的实时监测,对不同端口根据其需求进行差异化管理,从而有效提升交换机共享缓存的使用效率。
[0060]
其次参照附图描述根据本发明实施例提出的流量感知的交换机共享缓存调度装置。
[0061]
图4为根据本发明一个实施例的流量感知的交换机共享缓存调度装置的结构示意图。
[0062]
如图4所示,该流量感知的交换机共享缓存调度装置包括:初始化模块401、监测模块402、判断模块403、设置模块404和调整模块405。
[0063]
初始化模块401,用于根据交换机各出端口流量状态设置各交换机出端口的缓存阈值。
[0064]
监测模块402,用于监测交换机每个出端口是否发生数据包入队列、数据包出队列、数据包丢失、缓存溢出以及端口队列状态变化事件。
[0065]
判断模块403,用于根据出端口所发生的事件以及相应端口队列状态信息,判断该出端口的流量状态。
[0066]
设置模块404,用于根据出端口的流量状态,设置端口控制状态。
[0067]
调整模块405,用于根据端口控制状态,调整对应出端口的缓存阈值,继续监测,直至交换机停止工作。
[0068]
进一步地,判断模块进一步用于,
[0069]
根据出端口所发生的事件判断交换机出端口是否在轻载、过载、重载状态进行状态转移:
[0070]
连续数据包入队事件触发由轻载到重载的状态转移;
[0071]
连续数据包出队事件触发由重载到轻载的状态转移;
[0072]
连续数据包丢失事件触发由重载到过载的状态转移;
[0073]
连续数据包出队事件或端口队列长度小于预设阈值事件触发由过载到轻载的状态转移。
[0074]
进一步地,设置模块进一步用于,
[0075]
当端口由轻载状态进入重载状态时,端口控制状态设置为吸收状态;
[0076]
当端口由重载状态进入轻载状态时,端口控制状态设置为普通状态;
[0077]
当端口由重载状态进入过载状态时,端口控制状态设置为吸收状态;
[0078]
当端口由过载状态进入轻载状态时,端口控制状态设置为普通状态。
[0079]
进一步地,根据端口控制状态,调整对应出端口的缓存阈值,包括:
[0080][0081]
其中,t
i
(t)为端口i在t时刻的缓存阈值,α为控制参数,b为交换机共享缓存总量,q
j
(t)为口i在t时刻的队列长度,n为交换机端口总数,n
′
为交换机处于重载状态的端口数。
[0082]
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
[0083]
根据本发明实施例提出的流量感知的交换机共享缓存调度装置,通过交换机端口事件信号判断端口流量状态,并根据实时端口流量状态决定交换机端口控制状态,使用端口控制状态控制端口缓存阈值,从而达到基于交换机端口流量对交换机共享缓存进行分配的目的。可以通过对端口流量的实时监测,对不同端口根据其需求进行差异化管理,从而有效提升交换机共享缓存的使用效率。
[0084]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0085]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0086]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。