一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

缓存管理方法和设备与流程

2023-02-20 05:32:13 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,更具体地,涉及一种缓存管理方法和设备。


背景技术:

2.缓存作为数据交换的缓冲区,能够提高网络设备的硬件运行速度。目前,通过对网络设备外接片外缓存芯片(例如,高带宽存储器(high bandwidth memory,hbm)),能够实现缓存空间的扩充,以更好地满足网络中的业务需求。基于此,网络设备包括的缓存又可以分为片上缓存(local memory,lmem)和片外缓存(external memory,em)。
3.现有的缓存管理方法,当检测到网络设备的入队缓存中存在流量,或检测到有流量流入网络设备时,便会开启该网络设备包括的全部缓存(例如,片外缓存)。然而,现有网络中的网络设备通常在一段连续时间内接收到的流量都比较小,基于这种方法对网络设备的缓存(例如,片外缓存)进行管理时,不利于降低网络功耗。
4.因此,亟需一种缓存管理方法,在保证满足业务需求的情况下,有利于降低网络功耗。


技术实现要素:

5.本技术提供一种缓存管理方法和设备,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
6.第一方面,提供了一种缓存管理方法,该方法包括:流量管理设备获取工作状态参数,其中,该工作状态参数包括参考入队缓存值,第一缓存阈值和第一入队缓存阈值,该参考入队缓存值表示在预设时间段内该流量管理设备的入队缓存占用的最大值,且在该预设时间段内该流量管理设备开启的缓存空间对应的缓存阈值为该第一缓存阈值,以及开启的入队缓存空间对应的入队缓存阈值为该第一入队缓存阈值;
7.该流量管理设备基于该工作状态参数,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,其中,任意一个缓存阈值对应的缓存空间是该流量管理设备包括的缓存空间,任意两个缓存阈值对应的缓存空间不同,该n个缓存阈值包括该第一缓存阈值,n为大于1的整数;该流量管理设备开启确定的缓存空间。
8.其中,上述参考入队缓存值在预设时间段内不会频繁震荡,该参考入队缓存值能够很好的反映预设时间段内流入流量管理设备中的业务流量的情况,同时也可以很好的反映预设时间段内流量管理设备入队缓存的占用情况。
9.其中,在该预设时间段内该流量管理设备开启的缓存空间对应的缓存阈值为该第一缓存阈值,以及开启的入队缓存空间对应的入队缓存阈值为该第一入队缓存阈值。可以理解的是,第一缓存阈值对应的缓存空间在该预设时间段之前就已经开启了,以及第一入队缓存阈值对应的入队缓存空间在该预设时间段之前就已经开启了。本技术中对第一缓存阈值对应的缓存空间的开启时刻,以及第一入队缓存阈值对应的入队缓存空间的开启时刻,不作具体限定。
10.上述技术方案中,流量管理设备确定当前时刻应该开启的缓存空间大小时,考虑了当前时刻之前的一段时间(即,预设时间段)内的入队缓存占用值(即,参考入队缓存值),以及当前时刻之前开启的缓存空间大小(即,第一缓存阈值对应的缓存空间)和入队缓存空间大小(即,第一入队缓存阈值对应的入队缓存空间)。基于此,流量管理设备确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,以使开启确定的缓存空间能够满足业务需求。进一步,当流量管理设备开启的该一个缓存阈值对应的缓存空间小于流量管理设备包括的所有缓存空间时,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
11.结合第一方面,在第一方面的某些实现方式中,该流量管理设备基于该工作状态参数,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,包括:该流量管理设备根据该第一入队缓存阈值和该参考入队缓存值,确定在该预设时间段内流入该流量管理设备的业务流量的变化状态;该流量管理设备基于该业务流量的变化状态和该第一缓存阈值,确定开启该n个缓存阈值中的一个缓存阈值对应的缓存空间。
12.其中,在预设时间段内流入流量管理设备的业务流量的变化状态,包括:流入流量管理设备的业务流量的处于增长状态,以及流入流量管理设备的业务流量的处于减小状态。
13.上述技术方案中,流量管理设备能够根据流入流量管理设备的业务流量的变化状态,灵活的确定不同流量变化状态下需要开启的缓存空间大小,在保证满足业务需求的情况下,有利于降低网络功耗。
14.结合第一方面,在第一方面的某些实现方式中,该第一缓存阈值对应的缓存空间小于该流量管理设备包括的所有缓存空间,该流量管理设备基于该业务流量的变化状态和该第一缓存阈值,确定开启该n个缓存阈值中的一个缓存阈值对应的缓存空间,包括:在该预设时间段内流入该流量管理设备的业务流量处于增长状态的情况下,响应于满足预设条件,该流量管理设备确定开启第二缓存阈值对应的缓存空间,其中,该第二缓存阈值是该n个缓存阈值中的一个缓存阈值,该第二缓存阈值对应的缓存空间大于该第一缓存阈值对应的缓存空间,且该第二缓存阈值对应的缓存空间小于等于该流量管理设备包括的所有缓存空间。
15.其中,业务流量处于增长状态,还可以理解为业务流量处于增长趋势。
16.在一些实现方式中,第二缓存阈值对应的缓存空间小于该流量管理设备包括的所有缓存空间。在这种实现方式中,第二缓存阈值不是n个缓存阈值中最大的缓存阈值。示例性的,流量管理设备的总缓存为8吉字节(gigabyte,简称为gb或g),设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,第一缓存阈值可以是缓存阈值1(4g)时,第二缓存阈值可以是缓存阈值2(6g)。
17.在另一些实现方式中,第二缓存阈值对应的缓存空间等于该流量管理设备包括的所有缓存空间。在这种实现方式中,第二缓存阈值是n个缓存阈值中最大的缓存阈值。示例性的,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,第二缓存阈值可以是缓存阈值3(8g),第一缓存阈值可以是缓存阈值1(4g),还可以是阈值缓存2(6g)。
18.上述技术方案中,当前流入流量管理设备的流量处于增长状态的情况下,为了更
好地满足业务需求,流入流量管理设备确定需要开启更大的缓存空间(即,第二缓存阈值对应的缓存空间)。具体的,当流入流量管理设备的流量处于增长的趋势时,流入流量管理设备的业务流量的服务等级协议(service level agreement,sla)开始下降,存在非线速传输和丢包等风险,故应该打开更大的缓存空间(即,第二缓存阈值对应的缓存空间),以保证满足业务的需求。
19.结合第一方面,在第一方面的某些实现方式中,该满足预设条件包括:在该预设时间段内,满足该第一缓存阈值对应的缓存带宽大于流入该流量管理设备的业务流量的流速;或者,在该预设时间段内,满足该流量管理设备的缓存占用值小于(预设系数
×
第一缓存阈值),其中,该预设系数为大于零且小于1的数。举例说明,上述预设系数为大于零且小于1的数。例如,该预设系数可以但不限于为:0.9,0.8,0.85或0.7等。示例性的,当预设系数等于0.8,且第一缓存阈值等于6g,则在预设时间段内,需满足流量管理设备的缓存占用值小于(0.8
×
6)g。
20.其中,在该预设时间段内,满足该第一缓存阈值对应的缓存带宽大于流入该流量管理设备的业务流量的速度,可以理解为,在预设时间段内,流入流量管理设备的业务流量的速度是线性的。在该预设时间段内,满足该流量管理设备的缓存占用值小于(预设系数
×
第一缓存阈值),可以理解为,在预设时间段内流入流量管理设备的业务流量不存在丢包现象。
21.可以理解的是,满足上述预设条件,可以理解为,在预设时间段内流入流量管理设备的业务流量的sla得到了满足。
22.结合第一方面,在第一方面的某些实现方式中,该参考入队缓存值大于该第一入队缓存阈值。
23.其中,参考入队缓存值大于该第一入队缓存阈值,可以理解为,在开启第一缓存阈值对应的缓存空间的时刻至预设时间段,流入流量管理设备的业务流量处于增长状态。
24.结合第一方面,在第一方面的某些实现方式中,该第二缓存阈值与该第一缓存阈值是该n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。
25.示例性的,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,当第一缓存阈值是缓存阈值1(4g)时,第二缓存阈值可以是缓存阈值2(6g)。或者,当第一缓存阈值是缓存阈值2(6g)时,第二缓存阈值可以是缓存阈值3(8g),此时,第一缓存阈值不能是缓存阈值1(4g)。
26.上述技术方案中,第二缓存阈值与该第一缓存阈值是该n个缓存阈值中缓存阈值大小相邻的两个缓存阈值,当第二缓存阈值对应的缓存空间小于流量管理设备包括的所有缓存空间时,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
27.结合第一方面,在第一方面的某些实现方式中,该方法还包括:在该预设时间段内流入该流量管理设备的业务流量处于增长状态的情况下,响应于不满足该预设条件,该流量管理设备确定开启第三缓存阈值对应的缓存空间,其中,该第三缓存阈值对应的缓存空间大于等于该第二缓存阈值对应的缓存空间,且该第三缓存阈值对应的缓存空间小于等于该流量管理设备包括的所有缓存空间。
28.可以理解的是,在一些实现方式中,第三缓存阈值对应的缓存空间小于流量管理
设备包括的所有缓存空间。在另一些实现方式中,第三缓存阈值对应的缓存空间等于流量管理设备包括的所有缓存空间。
29.上述技术方案中,当前流入流量管理设备的流量处于增长状态,且不满足预设条件,为了更好地满足业务需求,流入流量管理设备确定需要开启更大的缓存空间(即,第三缓存阈值对应的缓存空间),以保证开启第三缓存阈值对应的缓存空间后能够满足预设条件。当开启的第三缓存阈值对应的缓存空间小于流量管理设备包括的所有缓存空间时,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
30.结合第一方面,在第一方面的某些实现方式中,该第一缓存阈值对应的缓存空间大于零,且小于等于该流量管理设备包括的所有缓存空间,该流量管理设备基于该业务流量的变化状态和该第一缓存阈值,确定开启该n个缓存阈值中的一个缓存阈值对应的缓存空间,包括:
31.在该预设时间段内流入该流量管理设备的业务流量处于减小状态的情况下,响应于满足预设条件,该流量管理设备确定开启第三缓存阈值对应的缓存空间,其中,该第三缓存阈值对应的缓存空间小于该第一缓存阈值对应的缓存空间,且该第三缓存阈值对应的缓存空间大于零。
32.其中,业务流量处于减小状态,还可以理解为业务流量处于减小或下降趋势。
33.结合第一方面,在第一方面的某些实现方式中,该参考入队缓存值小于该第一入队缓存阈值,且该参考入队缓存值小于第二入队缓存阈值,其中,该第二入队缓存阈值小于该第一入队缓存阈值。
34.可以理解的是,流量管理设备当前开启的入队缓存空间对应的入队缓存阈值为第一入队缓存阈值。
35.上述技术方案中,当前流入流量管理设备的流量处于减小状态,满足预设条件,且参考入队缓存值小于第二入队缓存阈值,第二入队缓存阈值小于第一入队缓存阈值。基于此,为了在保证满足业务需求的情况下,降低网络功耗,流入流量管理设备确定需要开启更小的缓存空间(即,第二缓存阈值对应的缓存空间)。该方法在保证满足业务需求的情况下,有利于降低网络功耗。
36.结合第一方面,在第一方面的某些实现方式中,该第三缓存阈值与该第一缓存阈值是该n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。
37.示例性的,流量管理设备的总缓存为6g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,当第一缓存阈值是缓存阈值2(6g)时,第二缓存阈值可以是缓存阈值1(4g)。或者,当第一缓存阈值是缓存阈值3(8g)时,第二缓存阈值可以是缓存阈值2(6g),此时,第一缓存阈值不能是缓存阈值1(4g)。
38.上述技术方案中,第三缓存阈值与该第一缓存阈值是该n个缓存阈值中缓存阈值大小相邻的两个缓存阈值,当第三缓存阈值对应的缓存空间小于流量管理设备包括的所有缓存空间时,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
39.结合第一方面,在第一方面的某些实现方式中,该方法还包括:在该预设时间段内流入该流量管理设备的业务流量处于减小状态的情况下,响应于不满足该预设条件,该流量管理设备确定开启第二缓存阈值对应的缓存空间,其中,该第二缓存阈值对应的缓存空
间大于该第一缓存阈值对应的缓存空间,且该第二缓存阈值对应的缓存空间小于等于该流量管理设备包括的所有缓存空间。
40.上述技术方案中,当前流入流量管理设备的流量处于减小状态,不满足预设条件的情况下,为了满足业务需求,流入流量管理设备确定需要开启更大的缓存空间(即,第二缓存阈值对应的缓存空间)。当该第二缓存阈值对应的缓存空间小于该流量管理设备包括的所有缓存空间时,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
41.第二方面,提供了一种流量管理设备,包括:获取单元,用于获取工作状态参数,其中,该工作状态参数包括参考入队缓存值,第一缓存阈值和第一入队缓存阈值,该参考入队缓存值表示在预设时间段内该流量管理设备的入队缓存占用的最大值,且在该预设时间段内该流量管理设备开启的缓存空间对应的缓存阈值为该第一缓存阈值,以及开启的入队缓存空间对应的入队缓存阈值为该第一入队缓存阈值;确定单元用于:基于该工作状态参数,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,其中,任意一个缓存阈值对应的缓存空间是该流量管理设备包括的缓存空间,任意两个缓存阈值对应的缓存空间不同,该n个缓存阈值包括该第一缓存阈值,n为大于1的整数;处理单元,用于开启确定的缓存空间。
42.结合第二方面,在第二方面的某些实现方式中,该确定单元还用于:根据该第一入队缓存阈值和该参考入队缓存值,确定在该预设时间段内流入该流量管理设备的业务流量的变化状态;基于该业务流量的变化状态和该第一缓存阈值,确定开启该n个缓存阈值中的一个缓存阈值对应的缓存空间。
43.结合第二方面,在第二方面的某些实现方式中,该第一缓存阈值对应的缓存空间小于该流量管理设备包括的所有缓存空间,该确定单元还用于:在该预设时间段内流入该流量管理设备的业务流量处于增长状态的情况下,响应于满足预设条件,该流量管理设备确定开启第二缓存阈值对应的缓存空间,其中,该第二缓存阈值是该n个缓存阈值中的一个缓存阈值,该第二缓存阈值对应的缓存空间大于该第一缓存阈值对应的缓存空间,且该第二缓存阈值对应的缓存空间小于等于该流量管理设备包括的所有缓存空间。
44.结合第二方面,在第二方面的某些实现方式中,该参考入队缓存值大于该第一入队缓存阈值。
45.结合第二方面,在第二方面的某些实现方式中,该第二缓存阈值与该第一缓存阈值是该n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。
46.结合第二方面,在第二方面的某些实现方式中,该确定单元还用于:
47.在该预设时间段内流入该流量管理设备的业务流量处于增长状态的情况下,响应于不满足该预设条件,该流量管理设备确定开启第三缓存阈值对应的缓存空间,其中,该第三缓存阈值对应的缓存空间大于等于该第二缓存阈值对应的缓存空间,且该第三缓存阈值对应的缓存空间小于等于该流量管理设备包括的所有缓存空间。
48.结合第二方面,在第二方面的某些实现方式中,该第一缓存阈值对应的缓存空间大于零,且小于等于该流量管理设备包括的所有缓存空间,该确定单元还用于:在该预设时间段内流入该流量管理设备的业务流量处于减小状态的情况下,响应于满足预设条件,该流量管理设备确定开启第三缓存阈值对应的缓存空间,其中,该第三缓存阈值对应的缓存空间小于该第一缓存阈值对应的缓存空间,且该第三缓存阈值对应的缓存空间大于零。
49.结合第二方面,在第二方面的某些实现方式中,该参考入队缓存值小于该第一入
队缓存阈值,且该参考入队缓存值小于第二入队缓存阈值,其中,该第二入队缓存阈值小于该第一入队缓存阈值。
50.结合第二方面,在第二方面的某些实现方式中,该第三缓存阈值与该第一缓存阈值是该n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。
51.结合第二方面,在第二方面的某些实现方式中,在该预设时间段内流入该流量管理设备的业务流量处于减小状态的情况下,响应于不满足该预设条件,该流量管理设备确定开启第二缓存阈值对应的缓存空间,其中,该第二缓存阈值对应的缓存空间大于该第一缓存阈值对应的缓存空间,且该第二缓存阈值对应的缓存空间小于等于该流量管理设备包括的所有缓存空间。
52.结合第二方面,在第二方面的某些实现方式中,该满足预设条件包括:在该预设时间段内,满足该第一缓存阈值对应的缓存带宽大于流入该流量管理设备的业务流量的流速;或者,在该预设时间段内,满足该流量管理设备的缓存占用值小于(预设系数
×
第一缓存阈值),其中,该预设系数为大于零且小于1的数。
53.第三方面,本技术提供了一种流量管理设备,流量管理设备具有实现第一方面以及第一方面中任一种可能的实现方式中的方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。
54.第四方面,本技术提供一种网络设备,包括至少一个处理器和通信接口。该至少一个处理器,用于执行计算机程序或指令,以使得该网络设备可以实现上述第一方面以及第一方面中任一种可能实现方式中的方法。
55.可选地,该网络设备还包括至少一个存储器,该至少一个存储器与该至少一个处理器耦合,该计算机程序或指令存储在该至少一个存储器中。其中,该存储器可以与该处理器集成在一起,或者该存储器与处理器分离设置。
56.在一种实现方式中,该网络设备为芯片或芯片系统。当该网络设备为芯片或芯片系统时,通信接口可以是该芯片或芯片系统上的输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。处理器也可以体现为处理电路或逻辑电路。
57.在另一种实现方式中,该网络设备为配置于网络设备中的芯片或芯片系统。
58.可选地,收发器可以为收发电路。可选地,输入/输出接口可以为输入/输出电路。
59.第五方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述第一方面以及上述第一方面的任意可能的实现方式中的方法的指令。
60.第六方面,提供了一种芯片系统,包括至少一个处理器和接口;该至少一个该处理器,用于调用并运行计算机程序,以使该芯片系统执行上述第一方面以及上述第一方面的任意可能的实现方式中的方法的指令。
61.上述芯片系统可以是片上系统(system on chip,soc),也可以是基带芯片等,其中基带芯片可以包括处理器、信道编码器、数字信号处理器、调制解调器和接口模块等。
附图说明
62.图1是适用于本技术实施例的网络设备100的结构示意图。
63.图2是本技术实施例提供的一种缓存管理方法200的示意性流程图。
64.图3是本技术实施例提供的时刻示意图。
65.图4是本技术实施例提供的参考入队缓存值的示意性图。
66.图5是本技术实施例提供的一种缓存管理方法500的示意性流程图。
67.图6是本技术实施例提供的一种缓存管理方法600的示意性流程图。
68.图7是本技术实施例提供的一种流量管理设备700的结构示意图。
具体实施方式
69.下面将结合附图,对本技术中的技术方案进行描述。
70.本技术实施例中的术语“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
71.以及,除非有特别说明,本技术实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
72.图1是适用于本技术实施例的网络设备100的结构示意图。如图1所示,网络设备100包括入接口110,流量管理设备120和出接口130,下面具体介绍网络设备100包括的各个模块的功能:
73.入接口110用于接收网络中的报文流量(又称为,业务流量),并将报文流量转发至流量管理设备120。
74.流量管理设备120用于监测和保存流入流量管理设备100中的报文流量。其中,流量管理设备120包括入队缓存单元121和缓存单元122。缓存单元122和入队缓存单元121的连接结构可以是串行连接的。流入流量管理设备120的报文流量首先会进入入队缓存单元121,入队缓存单元121根据当前网络状态对接收到的报文流量进行丢包、限速等处理,并将处理后的报文流量发送至缓存单元122。缓存单元122接收到来自入队缓存单元121发送的报文流量后,将报文流量保存至缓存单元122中。可选的,流量管理设备120可以用于监测入接口110接收到的报文,获取报文携带的信息。例如,流量管理设备120可以获取以下信息中的至少一种:携带的显示拥塞标记(explicit congestion notification,ecn)、服务类型(type of service,tos),服务等级(class of service,cos)、报文的源/目的互联网协议(internet protocol,ip)地址等。
75.可选的,流量管理设备120还可以用于监测出接口130,获取出接口130的发送信息。例如,流量管理设备120可以获取以下信息中的至少一种:出接口130通过流量管理设备100的每个出端口的发送队列长度、每个出端口的发送队列的平均时延等。
76.对流量管理设备120的具体形式不作限定。在上述图1中以流量管理设备120是网络设备100中的模块为例进行介绍。可选的,流量管理设备120还可以是一个独立的设备。也就是说,流量管理设备120包括但不限于是:芯片、芯片中的模块、网络设备中的模块等。例如,当流量管理设备120是网络设备中的模块时,该流量管理设备120具体可以是流量管理(traffic management,tm)模块。
77.应理解,上述图1仅为示意,并不对适用于本技术实施例的网络设备100和流量管
理设备120的结构构成任何限定。
78.下面,结合图2至图6对本技术实施例提供的缓存管理方法进行详细介绍。
79.图2是本技术实施例提供的一种缓存管理方法200的示意性流程图。
80.如图2所示,该方法200包括步骤210至步骤230。其中,该方法200可以但不限于应用于上述图1所示的网络设备100中。当方法200应用于图1所示的网络设备100中时,具体执行方法200的可以是网络设备100中的流量管理设备120。下面,详细介绍步骤210至步骤230。
81.步骤210,流量管理设备获取工作状态参数,其中,工作状态参数包括参考入队缓存值,第一缓存阈值和第一入队缓存阈值,参考入队缓存值表示在预设时间段内流量管理设备的入队缓存占用的最大值,且在预设时间段内流量管理设备开启的缓存空间对应的缓存阈值为第一缓存阈值,以及开启的入队缓存空间对应的入队缓存阈值为第一入队缓存阈值。
82.可选的,在步骤210之前,流量管理设备还可以执行如下操作:流量管理设备对缓存的大小进行阈值划分,得到n个缓存阈值,其中,n个缓存阈值中的任意两个缓存阈值对应的缓存空间不同,n个缓存阈值包括第一缓存阈值,n为1的整数;流量管理设备对入队缓存的大小进行阈值划分,得到m个入队缓存阈值,其中,m个入队缓存阈值中的任意两个入队缓存阈值对应的入队缓存空间不同,m个入队缓存阈值包括第一入队缓存阈值,m为大于1的整数。
83.上述阈值划分操作可以是流量管理设备在初始化配置时执行的。在一些实现方式中,n与m可以相等。例如,当n=m=3时,流量管理设备进行阈值划分后包括:3个缓存阈值和3个入队缓存阈值。在另一些实现方式中,n与m也可以不相等。例如,当n=4,m=3时,流量管理设备进行阈值划分后包括:3个缓存阈值和4个入队缓存阈值。
84.在一些实现方式中,n个缓存阈值中的第k个缓存阈值对应的缓存空间随着k(k=1,2,3,

,n)的增加而增加。也就是说,第k 1(小于等于n)个缓存阈值对应的缓存空间大于第k个缓存阈值对应的缓存空间。例如,为便于描述将n个缓存阈值记为buffer_dyn_open_size k,(k=1,2,3,

,n),buffer_dyn_open_size k表示第k个缓存阈值,且该n个缓存阈值对应的入队缓存大小为16g。在此情况下,当n可以等于2时,buffer_dyn_open_size 2对应的缓存空间可以为16g,buffer_dyn_open_size 1对应的缓存空间可以为8g。在另一些实现方式中,n个缓存阈值中的第k个缓存阈值对应的缓存空间随着k(k=1,2,3,

,n)的增加而减小。此时,第k个缓存阈值对应的缓存空间大于第k 1(小于等于n)个缓存阈值对应的缓存空间。例如,为便于描述n个缓存阈值记为buffer_dyn_open_size k,(k=1,2,3,

,n),buffer_dyn_open_size k表示第k个缓存阈值,且该n个缓存阈值对应的入队缓存大小为16g。在此情况下,当n可以等于2时,buffer_dyn_open_size 1对应的缓存空间可以为16g,buffer_dyn_open_size 2对应的缓存空间可以为8g。
85.基于上述对缓存的阈值划分得到n个缓存阈值的方式,还可以对入队缓存进行阈值划分得到m个入队缓存阈值,m为大于1的整数。其中,n和m可以相等,n和m也可以不相等。
86.为便于描述,下文中均以n个缓存阈值中的第k个缓存阈值对应的缓存空间随着k(k=1,2,3,

,n)的增加而增加,以及m个缓存阈值中的第p个缓存阈值对应的缓存空间随着p(p=1,2,3,

,m)的增加而增加为例进行介绍,其中,k为整数,且1≤k≤n,p为整数,且1
≤p≤m。
87.在本技术实施例中,对第一缓存阈值和第一入队缓存阈值的具体取值不作限定。在一个示例中,第一缓存阈值可以是n个缓存阈值中的第k个缓存阈值,第一入队缓存阈值可以是m个入队缓存阈值中的第p个入队缓存阈值,其中,p等于k。在另一个示例中,第一缓存阈值可以是n个缓存阈值中的第k个缓存阈值,第一入队缓存阈值可以是m个入队缓存阈值中的第p个入队缓存阈值,k为整数,且1≤k≤n,m为大于等于1的整数,其中,p不等于k。
88.上述步骤210中,在该预设时间段内该流量管理设备开启的缓存空间对应的缓存阈值为该第一缓存阈值,以及开启的入队缓存空间对应的入队缓存阈值为该第一入队缓存阈值。可以理解的是,第一缓存阈值对应的缓存空间在该预设时间段之前的时刻就已经开启了,以及第一入队缓存阈值对应的入队缓存空间在该预设时间段之前的时刻就已经开启了。本技术中对开启第一缓存阈值对应的缓存空间的时刻,以及开启第一入队缓存阈值对应的入队缓存空间的时刻不作具体限定。在一些实现方式中,开启第一缓存阈值对应的缓存空间的时刻,与开启第一入队缓存阈值对应的入队缓存空间的时刻相同。在另一些实现方式中,开启第一缓存阈值对应的缓存空间的时刻,与开启第一入队缓存阈值对应的入队缓存空间的时刻不相同。为便于描述,下文中均以“开启第一缓存阈值对应的缓存空间的时刻,与开启第一入队缓存阈值对应的入队缓存空间的时刻相同,且将该时刻记为第一时刻”为例进行描述。基于此,预设时间段可以理解为是第一时刻之后的一段时间。本技术中对该预设时间段的时间长度不作具体限定。例如,预设时间段的时间长度包括但不限于:0.5s,1s,2s,3s,4s,5s或10s等。示例性的,图3示出了第一时刻和预设时间段的关系。在图3中,预设时间段是第一时刻之后的一段时间,且预设时间段的起始时刻为第二时刻,预设时间段的终止时刻为第三时刻,第三时刻与第二时刻的差值等于预设时间段的具体时间长度。
89.上述步骤210中,参考入队缓存值表示在预设时间段内流量管理设备的入队缓存占用的最大值。可以理解的是,在该预设时间段内流入流量管理设备的流量的变化平稳,故参考入队缓存值能够很好的反映预设时间段内流入流量管理设备中的业务流量的变化情况,同时也可以很好的反映预设时间段内流量管理设备入队缓存的占用情况。示例性的,图4示出了流量管理设备中占用的入队缓存与总入队缓存的比例随时间变化的趋势图。如图4所示,横坐标表示时间,单位可以是毫秒(ms),纵坐标表示流量管理设备中占用的入队缓存与总入队缓存的比例。图4中,0ms至2000ms对应的是,流量流入流量管理设备的初始状态对应的入队缓存的占比情况,2000ms至4000ms是流量流动过程中对应的入队缓存的占比情况。在本技术实施例中,可以基于图4所示的2000ms至4000ms时间段内对应的流量管理设备中占用的入队缓存占总预入队缓存的比例确定参考入队缓存值。例如,预设时间段可以对应2000ms至3000ms这段时间,当一个流量管理设备的总的入队缓存大小为512千字节(kilobyte,kb)时,由图4可知这段时间内流量管理设备中占用的入队缓存与总入队缓存的最大占比例为0.5,基于此,参考入队缓存值等于(512
×
0.5)kb。可选的,还可以基于图4所示的0ms至2000ms这段时间内对应的流量管理设备中占用的入队缓存占总预入队缓存的比例确定参考入队缓存值。
90.在本技术实施例中,在一些实现方式中,流量管理设备的缓存可以是指该流量管理设备的片上缓存(local memory,lmem)。例如,该片上缓存可以是片上嵌入式静态存储器(enhanced static random-access memory,esram)。在另一些实现方式中,流量管理设备
的缓存也可以是指该流量管理设备的片外缓存(external memory,em)。例如,该片外缓存可以是高带宽存储器(high bandwidth memory,hbm)。应理解的是,当流量管理设备的缓存指的是片上缓存时,流量管理设备的入队缓存指的也是片上缓存。当流量管理设备的缓存指的是片外缓存时,流量管理设备的入队缓存指的也是片外缓存。
91.步骤220,流量管理设备基于工作状态参数,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,其中,任意一个缓存阈值对应的缓存空间是流量管理设备包括的缓存空间,任意两个缓存阈值对应的缓存空间不同,n个缓存阈值包括第一缓存阈值,n为大于1的整数。
92.上述步骤220中,流量管理设备基于工作状态参数,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,包括:
93.流量管理设备根据第一入队缓存阈值和参考入队缓存值,确定在预设时间段内流入流量管理设备的业务流量的变化状态;流量管理设备基于业务流量的变化状态和该第一缓存阈值,确定n个缓存阈值中的一个缓存阈值。
94.在现有的网络中,流入流量管理设备的业务流量的变化状态包括:增长状态和减小状态。其中,流入流量管理设备的业务流量变化状态为增长状态,也可以理解为,流入流量管理设备的业务流量变化状态为增长趋势。流入流量管理设备的业务流量变化状态为减小状态,也可以理解为,流入流量管理设备的业务流量变化状态为减小趋势。
95.基于此,在本技术实施例中,流量管理设备基于业务流量的变化状态和第一缓存阈值,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间可以包括两种方式,分别是方式一和方式二。下面具体介绍方式一和方式二。
96.方式一:
97.第一缓存阈值对应的缓存空间小于流量管理设备包括的所有缓存空间,流量管理设备基于业务流量的变化状态和第一缓存阈值,确定n个缓存阈值中的一个缓存阈值对应的缓存空间,包括:在预设时间段内流入流量管理设备的业务流量处于增长状态的情况下,响应于满足预设条件,流量管理设备确定开启第二缓存阈值对应的缓存空间,其中,第二缓存阈值是n个缓存阈值中的一个缓存阈值,第二缓存阈值对应的缓存空间大于第一缓存阈值对应的缓存空间,且第二缓存阈值对应的缓存空间小于等于流量管理设备包括的所有缓存空间。
98.其中,在预设时间段内流入流量管理设备的业务流量处于增长状态,即参考入队缓存值大于第一入队缓存阈值。换句话说,当参考入队缓存值大于第一入队缓存阈值时,表明在预设时间段内流入流量管理设备的业务流量处于增长状态。
99.上述方式一中,第二缓存阈值与第一缓存阈值是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。示例性的,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,当第一缓存阈值是缓存阈值1(4g)时,第二缓存阈值可以是缓存阈值2(6g)。或者,当第一缓存阈值是缓存阈值2(6g)时,第二缓存阈值可以是缓存阈值3(8g),此时,第一缓存阈值不能是缓存阈值1(4g)。
100.可选的,在预设时间段内流入流量管理设备的业务流量处于增长状态的情况下,响应于不满足预设条件,流量管理设备确定开启第三缓存阈值对应的缓存空间,其中,第三
缓存阈值对应的缓存空间大于等于第二缓存阈值对应的缓存空间,且第三缓存阈值对应的缓存空间小于等于流量管理设备包括的所有缓存空间。其中,第二缓存阈值与第一缓存阈值是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。基于这种实现方式,在一个示例中,第三缓存阈值对应的缓存空间大于第二缓存阈值对应的缓存空间,此时,第三缓存阈值与第一缓存阈值不是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。在另一个示例中,第三缓存阈值对应的缓存空间等于第二缓存阈值对应的缓存空间,此时,第三缓存阈值就是第二缓存阈值。基于此,这种实现方式中第三缓存阈值与第一缓存阈值是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。
101.举例说明,第三缓存阈值对应的缓存空间大于第二缓存阈值对应的缓存空间。例如,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=4,且这4个缓存阈值可分别记为:缓存阈值1(2g),缓存阈值2(4g),缓存阈值3(6g),缓存阈值4(8g)。基于此,当第一缓存阈值是缓存阈值1(2g),且第二缓存阈值是缓存阈值2(4g)时,第三缓存阈值可以是缓存阈值3(6g),第三缓存阈值也可以是缓存阈值4(8g)。也就是说,在这种实现方式中,第三缓存阈值与第一缓存阈值不是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。
102.上述方式一中,描述了在预设时间段内流入流量管理设备的业务流量处于增长状态的情况下,基于本技术实施例提供的缓存管理方法确定开启缓存空间的流程。下文中会结合图5详细介绍上述方式一所描述的方法的一个具体实施例,此处不再赘述。
103.方式二:
104.第一缓存阈值对应的缓存空间大于零,且小于等于流量管理设备包括的所有缓存空间,流量管理设备基于业务流量的变化状态和第一缓存阈值,确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,包括:
105.在预设时间段内流入流量管理设备的业务流量处于减小状态的情况下,响应于满足预设条件,流量管理设备确定开启第三缓存阈值对应的缓存空间,其中,第三缓存阈值对应的缓存空间小于第一缓存阈值对应的缓存空间,且第三缓存阈值对应的缓存空间大于零。
106.其中,在预设时间段内流入流量管理设备的业务流量处于减小状态,即参考入队缓存值小于第一入队缓存阈值。换句话说,当参考入队缓存值小于第一入队缓存阈值时,表明在预设时间段内流入流量管理设备的业务流量处于减小状态。
107.上述方式二中,参考入队缓存值小于第一入队缓存阈值,且参考入队缓存值小于第二入队缓存阈值,其中,第二入队缓存阈值小于第一入队缓存阈值。也就是说,上述方式二所描述的方案中参考入队缓存值不仅需要小于第一入队缓存阈值,还需要小于第二入队缓存阈值,这样,流量管理设备才会确定开启第三缓存阈值对应的缓存空间。
108.举例说明,上述描述的参考入队缓存值,第一入队缓存阈值和第二入队缓存阈值的取值关系。一个流量管理设备包括m=4个入队缓存阈值,分为记为入队缓存阈值1为64kb,入队缓存阈值2为128kb,入队缓存阈值3为192kb,入队缓存阈值4为256kb。基于此,例如当参考入队缓存值等于50kb时,第一入队缓存阈值可以等于128kb,第二入队缓存阈值可以等于64kb。基于此,例如当参考入队缓存值等于100kb时,第一入队缓存阈值可以等于192kb,第二入队缓存阈值可以等于128kb或64kb。
109.上述方式二中,第三缓存阈值与第一缓存阈值是n个缓存阈值中缓存阈值大小相
邻的两个缓存阈值。示例性的,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,当第一缓存阈值是缓存阈值2(6g)时,第三缓存阈值可以是缓存阈值1(4g)。或者,当第一缓存阈值是缓存阈值3(8g)时,第三缓存阈值可以是缓存阈值2(6g)。
110.可选的,在预设时间段内流入流量管理设备的业务流量处于减小状态的情况下,响应于不满足预设条件,流量管理设备确定开启第二缓存阈值对应的缓存空间,其中,第二缓存阈值对应的缓存空间大于第一缓存阈值对应的缓存空间,且第二缓存阈值对应的缓存空间小于等于流量管理设备包括的所有缓存空间。其中,对第二缓存阈值与第一缓存阈值在n个缓存阈值中的关系不作具体限定。在一个示例中,第二缓存阈值与第一缓存阈值不是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。例如,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,当第一缓存阈值是缓存阈值1(4g)时,第二缓存阈值可以是缓存阈值3(8g)。在另一个示例中,第二缓存阈值与第一缓存阈值是n个缓存阈值中缓存阈值大小相邻的两个缓存阈值。例如,流量管理设备的总缓存为8g,设置流量管理设备的缓存阈值n=3,且这3个缓存阈值可分别记为:缓存阈值1(4g),缓存阈值2(6g),缓存阈值3(8g)。基于此,当第一缓存阈值是缓存阈值1(4g)时,第二缓存阈值可以是缓存阈值2(6g)。或者,当第一缓存阈值是缓存阈值2(6g)时,第二缓存阈值可以是缓存阈值3(8g)。
111.上述方式二中,描述了在预设时间段内流入流量管理设备的业务流量处于减少状态的情况下,基于本技术实施例提供的缓存管理方法确定开启缓存空间的流程。下文中会结合图6详细介绍上述方式二所描述的方法的一个具体实施例,此处不再赘述。
112.上述方式一和上述方式二中,满足预设条件包括:在预设时间段内,满足第一缓存阈值对应的缓存带宽大于流入流量管理设备的业务流量的流速;或者,在预设时间段内,满足流量管理设备的缓存占用值小于(预设系数
×
第一缓存阈值),其中,预设系数为大于零且小于1的数。
113.其中,上述预设系数为大于零且小于1的数,示例性的,该预设系数可以但不限于为:0.9,0.8,0.85或0.7等。例如,当预设系数等于0.8,且第一缓存阈值等于6g,则在预设时间段内,需满足流量管理设备的缓存占用值小于(0.8
×
6)g。
114.应理解的是,上述方式一和上述方式二确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,其中该一个缓存阈值对应的缓存空间是不大于流量管理设备包括的总缓存空间的。
115.步骤230,流量管理设备开启确定的缓存空间。
116.上述步骤230中,流量管理设备开启确定的缓存空间后,能够满足流入流量管理设备的业务流量的sla,其中,sla包括但不限于:丢包率和传输时延。示例性的,表1中列举了业务流量包括不同类型的业务对应的时延需求和丢包需求,以及不同业务类型对应的队列优先级。以队列优先级为8对应的业务类型为协议和控制消息为例,满足该业务的sla需求,即应满足对该业务的传输时延小于100μs,丢包需求为0。
117.表1
[0118][0119][0120]
应理解的是,上述方法200仅为示意,并不对本技术实施例提供的缓存管理方法构成任何限定。只要开启流量管理设备的缓存空间的调节规律(例如但不限于,流入流量管理设备的流量处于增长或减小状态的情况下,开启流量管理设备的缓存空间的调节规律),与上述方法200中描述的开启流量管理设备的缓存空间的调节规律相同的技术方案都属于本技术实施例要求保护的技术方案。
[0121]
上述技术方案中,流量管理设备确定当前时刻应该开启的缓存空间大小时,考虑了当前时刻之前的一段时间(即,预设时间段)内的入队缓存占用值(即,参考入队缓存值),以及当前时刻之前开启的缓存空间大小(即,第一缓存阈值对应的缓存空间)和入队缓存空间大小(即,第一入队缓存阈值对应的入队缓存空间)。基于此,流量管理设备确定开启n个缓存阈值中的一个缓存阈值对应的缓存空间,以使开启确定的的缓存空间能够满足业务需求。进一步,当流量管理设备开启的该一个缓存阈值对应的缓存空间小于流量管理设备包括的所有缓存空间时,该方法在保证满足业务需求的情况下,有利于降低网络功耗。
[0122]
下面结合图5,以流量管理设备为芯片中的tm模块为例,介绍本技术提供的缓存管理方法的一个具体实施例。应理解的是,图5的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图5的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
[0123]
图5是本技术实施例提供的一种缓存管理方法500的示意性流程图。
[0124]
如图5所示,该方法500包括步骤510至步骤580。其中,该方法500可以但不限于应用于上述图1所示的网络设备100中。当方法500应用于图1所示的网络设备100中时,执行方法500的可以是网络设备100中的流量管理设备120,该流量管理设备120具体可以是tm模块。也就是说,执行本技术实施例的方法的主体具体可以是tm模块。下面,详细介绍步骤510至步骤580。
[0125]
可以理解的是,在本技术实施例中,tm模块相当于上述方法200中的流量管理设备,参考入队缓存值相当于上述方法200中的参考入队缓存值,缓存阈值1相当于上述方法200中的第一缓存阈值,入队缓存阈值1相当于上述方法200中的第一入队缓存阈值,第二时
刻至第三时刻这段时间相当于上述方法200中的预设时间段,缓存阈值2相当于上述方法200中的第二缓存阈值,缓存阈值3相当于上述方法200中的第三缓存阈值。
[0126]
可选的,步骤510之前还可以对tm模块进行初始化配置。在初始化配置阶段,可以根据该tm模块的总的缓存大小确定n个缓存阈值,以及根据该tm模块的总的入队缓存大小确定m个入队缓存阈值,任意一个缓存阈值对应的缓存空间大小不同,任意一个入队缓存阈值对应的入队缓存空间大小不同,n和m为大于1的整数。在本技术实施例中,tm模块总的缓存为16g,初始化阶段可以对该16g的缓存设置4个阈值(即,n=4),为便于描述分别记为:缓存阈值1(4g),缓存阈值2(8g),缓存阈值3(12g),缓存阈值4(16g)。tm模块总的入队缓存为512kb,初始化阶段可以对512kb的入队缓存设置4个阈值(即,m=n),为便于描述分别记为:入队缓存阈值1(128kb),入队缓存阈值2(256kb),入队缓存阈值3(384kb),入队缓存阈值4(512kb)。以缓存阈值1(4g)为例,缓存阈值1对应的缓存空间大小为4g。以入队缓存阈值1为例,入队缓存阈值1对应的缓存空间大小为128kb。
[0127]
步骤510,在第一时刻,tm模块开启的缓存空间对应的缓存阈值为缓存阈值1(4g),开启的入队缓存空间对应的入队缓存阈值为入队缓存阈值1(128kb)。
[0128]
其中,缓存阈值1,可以理解为,tm模块在第一时刻开启的缓存空间对应的缓存阈值。入队缓存阈值1,可以理解为,tm模块在第一时刻开启的入队缓存空间对应的入队缓存阈值。由上述步骤510可知,在第一时刻,tm模块开启的缓存空间为4g,以及开启的入队缓存空间为128kb。
[0129]
应理解的是,在第一时刻后,tm模块仍然开启缓存阈值1对应的缓存空间,以及开启入队缓存阈值1对应的入队缓存空间。一直持续到第一时刻后的某个时刻,tm模块确定需要调整缓存阈值时才会关闭缓存阈值1对应的缓存空间,并开启调整后的缓存阈值对应的缓存空间,以及tm模块确定需要调整入队缓存阈值时才会关闭入队缓存阈值1对应的缓存空间,开启调整后的入队缓存阈值对应的入队缓存空间。
[0130]
步骤520,tm模块确定在第一时刻之后的第二时刻至第三时刻,获取参考入队缓存值。
[0131]
其中,参考入队缓存值表示在第二时刻至第三时刻这段时间内,tm模块的入队缓存占用的最大值。可以理解的是,参考入队缓存值能够很好的反映第二时刻至第三时刻这段时间内流入tm模块的业务流量的变化,同时也可以很好的反映第二时刻至第三时刻这段时间内流量管理设备入队缓存的占用情况。在本技术实施例中,在第二时刻至第三时刻,获取的参考入队缓存值的大小为200kb,第二时刻至第三时刻这段时间的具体长度可以为1秒。
[0132]
应理解的是,在第二时刻至第三时刻这段时间内,tm模块开启的缓存空间对应的缓存阈值仍为缓存阈值1,开启的入队缓存空间对应的入队缓存阈值仍为入队缓存阈值1。
[0133]
步骤530,tm模块根据参考入队缓存值和入队缓存阈值1,确定流入tm模块的业务流量处于增长状态。
[0134]
其中,tm模块通过比较参考入队缓存值(200kb)大于入队缓存阈值1(128kb),可以确定在第一时刻之后流入tm模块的业务流量处于增长状态。此时,tm模块还确定参考入队缓存值(200kb)小于入队缓存阈值2(256kb)。
[0135]
步骤540,tm模块确定是否满足预设条件。
[0136]
其中,预设条件包括:条件1:在第二时刻至第三时刻内,入队缓存阈值1对应的缓存带宽大于流入流量管理设备的业务流量的流速;或者,条件2:在第二时刻至第三时刻内,流量管理设备的入队缓存占用值小于(预设系数
×
缓存阈值1),其中,预设系数为大于零且小于1的数。
[0137]
在本技术实施例中,预设系数可以等于0.8,基于此,在第二时刻至第三时刻这段时间内,流量管理设备的入队缓存占用值小于(0.8
×
4)g
[0138]
上述步骤540中,tm模块确定是否满足预设条件,包括:
[0139]
tm模块确定满足预设条件的情况下,执行步骤550和步骤560;或者,
[0140]
tm模块确定不满足预设条件的情况下,执行步骤570和步骤580。
[0141]
其中,满足预设条件,可以理解为满足上述步骤540所描述的预设条件中的部分条件(例如,满足条件1或满足条件2),或还可以理解为满足上述步骤540所描述的预设条件中的所有条件(即,同时满足条件1和条件2)。不满足预设条件,可以理解为不满足上述步骤540所描述的预设条件中的所有条件(即,条件1和条件2)。
[0142]
步骤550,tm模块确定需要开启的缓存空间对应的缓存阈值为缓存阈值2(8g)。
[0143]
其中,缓存阈值2(8g)与缓存阈值1(4g)可以理解为是上述4个缓存阈值中的缓存阈值大小相邻的两个缓存阈值。步骤560,tm模块开启缓存阈值2(8g)对应的缓存空间。
[0144]
也就是说,在第三时刻之后,tm模块开启了阈值2(8g)对应的缓存空间。在一个示例中,tm模块开启缓存阈值2(8g)对应的缓存空间,可以理解为,当tm模块开启缓存阈值2(8g)对应的缓存空间的同时,tm模块会关闭阈值1(4g)对应的缓存空间。在另一个示例中,tm模块开启缓存阈值2(8g)对应的缓存空间,可以理解为,tm模块在开启缓存阈值1(4g)对应的缓存空间的基础上,又开启了新的8g-4g=4g缓存空间,基于此,可以认为tm模块开启了缓存阈值2(8g)对应的缓存空间。
[0145]
步骤570,tm模块确定需要开启的缓存空间对应的缓存阈值为缓存阈值3(12g)。
[0146]
上述步骤570中,在不满足预设条件的情况下,tm模块确定需要开启的缓存空间对应的缓存阈值为缓存阈值3(12g),其中,缓存阈值3(12g)与缓存阈值1(4g)不是上述4个缓存阈值中的缓存阈值大小相邻的两个缓存阈值。
[0147]
可以理解的是,tm模块确定在第三时刻之后需要开启的缓存空间对应的缓存阈值为缓存阈值3(12g),就能够满足流入tm模块的业务流量的sla,其中,sla包括但不限于:丢包率和传输延时。
[0148]
可选的,在另一些实现方式中,tm模块确定在第三时刻之后需要开启的缓存空间对应的缓存阈值为缓存阈值4(16g),才能够满足流入tm模块的业务流量的sla。
[0149]
步骤580,tm模块开启缓存阈值3(12g)对应的缓存空间。
[0150]
也就是说,在第三时刻之后,tm模块开启了阈值3(12g)对应的缓存空间。在一个示例中,tm模块开启缓存阈值3(12g)对应的缓存空间,可以理解为,当tm模块开启缓存阈值3(12g)对应的缓存空间的同时,tm模块会关闭阈值1(4g)对应的缓存空间。在另一个示例中,tm模块开启缓存阈值3(12g)对应的缓存空间,可以理解为,tm模块在开启缓存阈值1(4g)对应的缓存空间的基础上,又开启了新的12g-4g=8g缓存空间,基于此,可以认为tm模块开启了缓存阈值3(12g)对应的缓存空间。
[0151]
可以理解的是,在第三时刻之后,tm模块开启了阈值3(12g)对应的缓存空间,该阈
值3(12g)对应的缓存空间大小能够满足流入tm模块的业务流量的sla。
[0152]
上述步骤510至步骤580中,第一时刻,第二时刻和第三时刻在时间轴上的示意图可以参见上文中的图3所示。
[0153]
应理解,上述图5所示的方法500仅为示意,并不对本技术实施例提供的缓存管理方法构成任何限定。例如,在一些实现方式中,还可以对tm模块的缓存设置更多的缓存阈值,例如,n等于5,7或8等。还可以对tm模块的入队缓存设置更多的入队缓存阈值,例如,m等于8。例如,在一些实现方式中,第二时刻至第三时刻这段时间长度还可以大于或小于1秒,例如,第二时刻至第三时刻这段时间的具体长度还可以为0.5秒,2秒,3秒或5秒等。
[0154]
下面结合图6,以流量管理设备为芯片中的tm模块为例,介绍本技术提供的缓存管理方法的另一个具体实施例。应理解的是,图6的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图6的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
[0155]
图6是本技术实施例提供的一种缓存管理方法600的示意性流程图。
[0156]
如图6所示,该方法600包括步骤610至步骤680。其中,该方法600可以但不限于应用于上述图1所示的网络设备100中。当方法600应用于图1所示的网络设备100中时,执行方法600的可以是网络设备100中的流量管理设备120,该流量管理设备120具体可以是tm模块。也就是说,执行本技术实施例的方法的主体具体可以是tm模块。下面,详细介绍步骤610至步骤680。
[0157]
可以理解的是,在本技术实施例中,tm模块相当于上述方法200中的流量管理设备,参考入队缓存值相当于上述方法200中的参考入队缓存值,缓存阈值3相当于上述方法200中的第一缓存阈值,入队缓存阈值3相当于上述方法200中的第一入队缓存阈值,第二时刻至第三时刻这段时间相当于上述方法200中的预设时间段,缓存阈值2相当于上述方法200中的第三缓存阈值,缓存阈值4相当于上述方法200中的第二缓存阈值。
[0158]
可选的,步骤610之前还可以对tm模块进行初始化配置。在初始化配置阶段,可以根据该tm模块的总的缓存大小确定n个缓存阈值,以及根据该tm模块的总的入队缓存大小确定m个入队缓存阈值,任意一个缓存阈值对应的缓存空间大小不同,任意一个入队缓存阈值对应的入队缓存空间大小不同,n和m为大于1的整数。在本技术实施中,tm模块总的缓存为16g,初始化阶段可以对该16g的缓存设置4个阈值(即,n=4),为便于描述分别记为:缓存阈值1(4g),缓存阈值2(8g),缓存阈值3(12g),缓存阈值4(16g)。tm模块总的入队缓存为512kb,初始化阶段可以对512kb的入队缓存设置4个阈值(即,m=n),为便于描述分别记为:入队缓存阈值1(128kb),入队缓存阈值2(256kb),入队缓存阈值3(384kb),入队缓存阈值4(512kb)。以缓存阈值1(4g)为例,缓存阈值1对应的缓存空间大小为4g。以入队缓存阈值1为例,入队缓存阈值1对应的缓存空间大小为128kb。
[0159]
步骤610,在第一时刻,tm模块开启的缓存空间对应的缓存阈值为缓存阈值3(12g),开启的入队缓存空间对应的入队缓存阈值为入队缓存阈值3(384kb)。
[0160]
其中,缓存阈值4,可以理解为,tm模块在第一时刻开启的缓存空间对应的缓存阈值。入队缓存阈值4,可以理解为,tm模块在第一时刻开启的入队缓存空间对应的入队缓存阈值。由上述步骤510可知,在第一时刻,tm模块开启的缓存空间为16g,以及开启的入队缓
存空间为384kb。
[0161]
应理解的是,在第一时刻后,tm模块仍然开启缓存阈值1对应的缓存空间,以及开启入队缓存阈值1对应的入队缓存空间。一直持续到第一时刻后的某个时刻,tm模块确定需要调整缓存阈值时才会关闭缓存阈值1对应的缓存空间,并开启调整后的缓存阈值对应的缓存空间,以及tm模块确定需要调整入队缓存阈值时才会关闭入队缓存阈值1对应的缓存空间,开启调整后的入队缓存阈值对应的入队缓存空间。
[0162]
步骤620,tm模块确定在第一时刻之后的第二时刻至第三时刻,获取参考入队缓存值。
[0163]
其中,参考入队缓存值表示在第二时刻至第三时刻这段时间内,tm模块的入队缓存占用的最大值。可以理解的是,参考入队缓存值能够很好的反映第二时刻至第三时刻这段时间内流入tm模块的业务流量的变化,同时也可以很好的反映第二时刻至第三时刻这段时间内流量管理设备入队缓存的占用情况。在本技术实施例中,在第二时刻至第三时刻,获取的参考入队缓存值的大小可以为200kb,第二时刻至第三时刻这段时间的具体长度可以为1秒。
[0164]
应理解的是,在第二时刻至第三时刻这段时间内,tm模块开启的缓存空间对应的缓存阈值仍为缓存阈值1,开启的入队缓存空间对应的入队缓存阈值仍为入队缓存阈值1。
[0165]
步骤630,tm模块根据参考入队缓存值和入队缓存阈值1,确定流入tm模块的业务流量处于减小状态。
[0166]
其中,tm模块通过比较参考入队缓存值(200kb)小于入队缓存阈值3(384kb),可以确定在第一时刻之后流入tm模块的业务流量处于减小状态。此时,tm模块还确定参考入队缓存值(200kb)小于入队缓存阈值2(256kb),入队缓存阈值2(256kb)小于入队缓存阈值3(384kb)。
[0167]
步骤640,tm模块确定是否满足预设条件。
[0168]
其中,预设条件包括:条件1:在第二时刻至第三时刻内,入队缓存阈值1对应的缓存带宽大于流入流量管理设备的业务流量的流速;或者,条件2:在第二时刻至第三时刻内,流量管理设备的入队缓存占用值小于(预设系数
×
缓存阈值3),其中,预设系数为大于零且小于1的数。
[0169]
在本技术实施例中,预设系数可以等于0.8,基于此,在第二时刻至第三时刻内,流量管理设备的入队缓存占用值小于(0.8
×
12)g
[0170]
上述步骤640中,tm模块确定是否满足预设条件,包括:
[0171]
tm模块确定满足预设条件的情况下,执行步骤650和步骤660;或者,
[0172]
tm模块确定不满足预设条件的情况下,执行步骤670和步骤680。
[0173]
其中,满足预设条件,可以理解为满足上述步骤640所描述的预设条件中的部分条件(例如,满足条件1或满足条件2),或还可以理解为满足上述步骤640所描述的预设条件中的所有条件(即,条件1和条件2)。不满足预设条件,可以理解为不满足上述步骤540所描述的预设条件中的所有条件(即,条件1和条件2)。
[0174]
步骤650,tm模块确定需要开启的缓存空间对应的缓存阈值为缓存阈值2(8g)。
[0175]
在本技术实施例中,tm模块确定参考入队缓存值(200kb)小于入队缓存阈值3(384kb),且小于入队缓存阈值2(256kb),tm模块确定需要开启的缓存空间对应的缓存阈值
为缓存阈值2(8g)。可以理解的是,当tm模块确定参考入队缓存值(例如,参考入队缓存值等于260kb)小于入队缓存阈值3(384kb),但不小于入队缓存阈值2(256kb)时,tm模块确定需要开启的缓存空间对应的缓存阈值仍为缓存阈值3(12g)。
[0176]
步骤660,tm模块开启缓存阈值2(8g)对应的缓存空间。
[0177]
也就是说,在第三时刻之后,tm模块开启了阈值2(8g)对应的缓存空间。在一个示例中,tm模块开启缓存阈值2(8g)对应的缓存空间,可以理解为,当tm模块开启缓存阈值2(8g)对应的缓存空间的同时,tm模块会关闭阈值3(12g)对应的缓存空间。在另一个示例中,tm模块开启缓存阈值2(8g)对应的缓存空间,可以理解为,tm模块关闭阈值3(12g)对应的缓存空间中的部分缓存空间(即,部分缓存空间大小为12g-8g=4g),基于此,可以认为tm模块开启了缓存阈值2(8g)对应的缓存空间。
[0178]
步骤670,tm模块确定需要开启的缓存空间对应的缓存阈值为缓存阈值4(16g)。
[0179]
在不满足预设条件的情况下,tm模块确定需要开启的缓存空间对应的缓存阈值为缓存阈值4(16g)。
[0180]
可以理解的是,tm模块确定在第三时刻之后需要开启的缓存空间对应的缓存阈值为缓存阈值4(16g),就能够满足流入tm模块的业务流量的sla,其中,sla包括但不限于:丢包率和传输延时。
[0181]
可选的,在另一些实现方式中,如果tm模块确定在第三时刻之后需要开启的缓存空间对应的缓存阈值为缓存阈值4(16g),不能够满足流入tm模块的业务流量的sla,tm模块仍然确定需要开启的缓存空间对应的缓存阈值为缓存阈值4(16g)。可以理解的是,tm模块的总缓存空间对应的缓存阈值为缓存阈值4(16g),即,tm模块开启的最大缓存空间为16g。
[0182]
步骤680,tm模块开启缓存阈值4(16g)对应的缓存空间。
[0183]
也就是说,在第三时刻之后,tm模块开启了阈值4(16g)对应的缓存空间。在一个示例中,tm模块开启缓存阈值4(16g)对应的缓存空间,可以理解为,当tm模块开启缓存阈值4(16g)对应的缓存空间的同时,tm模块会关闭阈值3(12g)对应的缓存空间。在另一个示例中,tm模块开启缓存阈值4(16g)对应的缓存空间,可以理解为,tm模块在开启缓存阈值3(12g)对应的缓存空间的基础上,又开启了新的16g-12g=4g缓存空间,基于此,可以认为tm模块开启了缓存阈值4(16g)对应的缓存空间。
[0184]
可以理解的是,在第三时刻之后,tm模块开启了阈值4(16g)对应的缓存空间,该阈值4(16g)对应的缓存空间大小能够满足流入tm模块的业务流量的sla。
[0185]
上述步骤610至步骤680中,第一时刻,第二时刻和第三时刻在时间轴上的示意图可以参见上文图3所示。
[0186]
应理解,上述图6所示的方法600仅为示意,并不对本技术实施例提供的缓存管理方法构成任何限定。例如,在一些实现方式中,还可以对tm模块的缓存设置更多的缓存阈值,例如,n等于5或8等。还可以对tm模块的入队缓存设置更多的入队缓存阈值,例如,n等于8。例如,在一些实现方式中,第二时刻至第三时刻这段时间长度还可以大于或小于1秒,例如,第二时刻至第三时刻这段时间长度还可以为0.5秒,2秒,3秒或5秒等。
[0187]
上述图5所描述的方法500和图6所描述的方法600还可以结合在一起使用,示例性的,tm模块在一段时间内确定流入tm模块的业务流量处于增长状态,此时tm模块根据上述图5所描述的方法500进行缓存管理。此后,tm模块在一段时间内确定流入tm模块的业务流
量处于减小状态,此时tm模块可以根据上述图6所描述的方法600进行缓存管理。
[0188]
上文结合图1至图6,详细描述了适用于本技术实施例的网络设备,以及本技术提供的缓存管理方法。下面,结合图7介绍本技术提供的流量管理设备。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
[0189]
图7是本技术实施例提供的一种流量管理设备700的结构示意图。如图7所示该流量管理设备700包括获取单元710,确定单元720和处理单元730。其中,流量管理设备700可以是上文图1所示的网络设备700中的流量管理设备120。
[0190]
在一些实现方式中,该获取单元710用于执行上述方法200中的步骤210,确定单元720用于执行上述方法200中的步骤220,处理单元730用于执行上述方法200中的步骤230。其中,步骤210,步骤220和步骤230具体可以参见上文中的方法200,为了简洁,此处不再详细赘述。
[0191]
可选的,在另一些实现方式中,该获取单元710用于执行上述方法500中的步骤520中获取参考入队缓存值的相关步骤,确定单元720用于执行上述方法500中的步骤530,步骤540,步骤550或步骤570,处理单元730用于执行上述方法500中的步骤510,步骤560或步骤580。其中,方法500包括的步骤具体可以参见上文中的方法500,为了简洁,此处不再详细赘述。
[0192]
可选的,在另一些实现方式中,该获取单元710用于执行上述方法600中的步骤620中获取参考入队缓存值的相关步骤,确定单元720用于执行上述方法600中的步骤630,步骤640,步骤650或步骤670,处理单元730用于执行上述方法600中的步骤610,步骤660或步骤680。其中,方法600包括的步骤具体可以参见上文中的方法600,为了简洁,此处不再详细赘述。
[0193]
本技术实施例提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行上述方法实施例中的方法。
[0194]
本技术实施例提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述方法实施例中的方法。
[0195]
本技术实施例提供了一种芯片系统,包括至少一个处理器和接口;所述至少一个所述处理器,用于调用并运行计算机程序,以使所述芯片系统执行上述方法实施例中的方法。
[0196]
上述各种产品形态的装置,分别具有上述方法实施例中网络设备的任意功能,此处不再赘述。
[0197]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0198]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0199]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0200]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0201]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0202]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0203]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献