CN113783727B - 分布式设备带宽的调整方法、装置、存储介质及处理器 - Google Patents
分布式设备带宽的调整方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN113783727B CN113783727B CN202111044704.5A CN202111044704A CN113783727B CN 113783727 B CN113783727 B CN 113783727B CN 202111044704 A CN202111044704 A CN 202111044704A CN 113783727 B CN113783727 B CN 113783727B
- Authority
- CN
- China
- Prior art keywords
- flow
- card
- pipeline
- target
- level
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007849 functional defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F9/00—Details other than those peculiar to special kinds or types of apparatus
- G07F9/002—Vending machines being part of a centrally controlled network of vending machines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种分布式设备带宽的调整方法、装置、存储介质及处理器。该方法包括:在分布式设备上,接收多个目标子卡的流量;基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;基于带宽信息对每个目标子卡的流量的配置进行调整。通过本申请,解决了相关技术中在分布式设备中难以对各子卡的带宽进行调整的问题。
Description
技术领域
本申请涉及分布式带宽处理技术领域,具体而言,涉及一种分布式设备带宽的调整方法、装置、存储介质及处理器。
背景技术
分布式优先级带宽调整,随着分布式技术的普遍应用,现行网络设备多采用分布式的实现方式,对于分布式的设备仍需要满足相关功能。其中需要重点关注的是优先级,对于一般的分布式带宽调整中已经提供了计算框架,但是并没有提供实现优先级分布式带宽调整的方案,在功能上并不完善,在分布式设备上,主机卡收集子卡的流量信息时,难以对各子卡的带宽进行调整。
针对相关技术中在分布式设备中难以对各子卡的带宽进行调整的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种分布式设备带宽的调整方法、装置、存储介质及处理器,以解决相关技术中在分布式设备中难以对各子卡的带宽进行调整的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种分布式设备带宽的调整方法。该方法包括:在分布式设备上,接收多个目标子卡的流量;基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;基于带宽信息对每个目标子卡的流量的配置进行调整。
进一步地,在在分布式设备上,接收多个目标子卡的流量之前,该方法还包括:通过主控制卡发送配置信息至每个目标子卡;基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;将每个目标子卡采集到的流量上传至主控制卡中。
进一步地,基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道包括:将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
进一步地,在基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道之前,该方法还包括:若每个目标子卡的流量的容量大于第一预设值时,对第一层级流量管道的流量进行溢出处理,得到溢出后的流量。
进一步地,基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道包括:判断第一层级流量管道是否设置了每个管道的优先级;若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
进一步地,对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,该方法还包括:对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数;判断每个目标子卡的流量的剩余值是否大于预设令牌数;若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;基于差值确定每个目标子卡的流量的第三层级流量管道。
进一步地,在基于差值确定每个目标子卡的流量的第三层级流量管道之后,该方法还包括:判断是否存在管道的优先级大于管道预设优先级;若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
进一步地,对多层级的流量管道中的流量的带宽进行计算,得到带宽信息包括:基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;基于计算结果确定每个目标子卡的流量的带宽信息。
为了实现上述目的,根据本申请的另一方面,提供了一种分布式设备带宽的调整装置。该装置包括:第一接收单元,用于在分布式设备上,接收多个目标子卡的流量;第一确定单元,用于基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;第一计算单元,用于对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;第一调整单元,用于基于带宽信息对每个目标子卡的流量的配置进行调整。
进一步地,该装置还包括:第一发送单元,用于在在分布式设备上,接收多个目标子卡的流量之前,通过主控制卡发送配置信息至每个目标子卡;第一配置单元,用于基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;第一上传单元,用于将每个目标子卡采集到的流量上传至主控制卡中。
进一步地,第一确定单元包括:第一确定模块,用于将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;第二确定模块,用于基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
进一步地,该装置还包括:第一处理单元,用于在基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道之前,若每个目标子卡的流量的容量大于第一预设值时,对第一层级流量管道的流量进行溢出处理,得到溢出后的流量。
进一步地,第二确定模块包括:第一判断子模块,用于判断第一层级流量管道是否设置了每个管道的优先级;第一确定子模块,用于若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
进一步地,该装置还包括:第二计算单元,用于对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数;第一判断单元,用于判断每个目标子卡的流量的剩余值是否大于预设令牌数;第三计算单元,用于若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;第二确定单元,用于基于差值确定每个目标子卡的流量的第三层级流量管道。
进一步地,该装置还包括:第二判断单元,用于在基于差值确定每个目标子卡的流量的第三层级流量管道之后,判断是否存在管道的优先级大于管道预设优先级;第一消耗单元,用于若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
进一步地,第一计算单元包括:第一消耗模块,用于基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;第一计算模块,用于基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;第三确定模块,用于基于计算结果确定每个目标子卡的流量的带宽信息。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的方法。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时执行上述任意一项的方法。
通过本申请,采用以下步骤:在分布式设备上,接收多个目标子卡的流量;基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;基于带宽信息对每个目标子卡的流量的配置进行调整。解决了相关技术中在分布式设备中难以对各子卡的带宽进行调整的问题。通过对多个目标子卡基于令牌桶算法确定其对应的多层级的流量管道,并基于多层级的流量管道进行带宽计算,进而实现了在分布式设备中对各子卡的带宽进行调整的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的分布式设备带宽的调整方法的流程图;
图2是根据本申请实施例提供的分布式设备带宽的调整方法的分布式实例初始状态示意图;
图3是根据本申请实施例提供的分布式设备带宽的调整方法的分布式实例调整状态示意图;
图4是根据本申请实施例提供的分布式设备带宽的调整方法的分布式模型示意图;
图5是根据本申请实施例提供的分布式设备带宽的调整方法的分布式算法示意图;
图6是根据本申请实施例提供的分布式设备带宽的调整方法的子卡二级桶预留算法流程图;
图7是根据本申请实施例提供的分布式设备带宽的调整方法的子卡三级桶预留算法流程图;以及
图8是根据本申请实施例提供的分布式设备带宽的调整装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请的实施例,提供了一种分布式设备带宽的调整方法。
图1是根据本申请实施例的分布式设备带宽的调整方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,在分布式设备上,接收多个目标子卡的流量。
具体的,在主控制卡中在分布式设备上,接收多个目标子卡的流量信息之前,可选地,在本申请实施例提供的分布式设备带宽的调整方法中,在在分布式设备上,接收多个目标子卡的流量之前,该方法还包括:通过主控制卡发送配置信息至每个目标子卡;基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;将每个目标子卡采集到的流量上传至主控制卡中。
具体的,在分布式设备流量控制过程中,通过每个目标子卡会对带宽进行统计,例如,有两个目标子卡,在加载配置的时候将总配置数据信息(对应于本申请中主控制卡中的配置)除以子卡数目得到每个目标子卡的配置数据,也即每个目标子卡按照主控制卡配置的数据信息采集相应的流量信息,每个目标子卡将采集的流量进行统计整理后上传至主控卡中,主控制卡对各个目标子卡的流量进行接收。
例如,图2是根据本申请实施例提供的分布式设备带宽的调整方法的分布式实例初始状态示意图,如图2所示,主控制卡总配置100M,向子卡0以及子卡1下发配置数据信息为50M,子卡0以及子卡1分别有两个管道有流量,管道优先级分别是0和7,各子卡的流量情况也如图2所示,子卡0的两个叶子管道分别有流量10M,且其最小保证桶为5M,最大限制桶为50M,子卡1的两个叶子管道分别有流量140M,且其最小保证桶为5M,最大限制桶为50M,基于带宽的配置信息,将子卡0最终的输出带宽20M数据信息、以及子卡1最终的输出带宽50M数据信息上传至主控制卡中。
步骤S102,基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道。
在主控制卡中,基于令牌桶算法限制对不同流量的分支管道的令牌消耗,进而控制网络上面的数据传送数目。
可选地,在本申请实施例提供的分布式设备带宽的调整方法中,基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道包括:将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
例如,由上述图2示例可知,将首次10M流量经过子卡0的优先级0的叶子管道或者优先级为7的叶子管道为子卡0的第一层级流量管道,将首次流量140M经过子卡1的优先级0的叶子管道或者优先级为7的叶子管道为子卡1的第一层级流量管道,其中,叶子管道最小保证桶对应于本申请中的第一预设值,叶子管道中的最大限制桶对应于本申请中的第二预设值。
可选地,在本申请实施例提供的分布式设备带宽的调整方法中,在基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道之前,该方法还包括:若每个目标子卡的流量的容量大于第一预设值时,对第一层级流量管道的流量进行溢出处理,得到溢出后的流量。
基于叶子管道的流量对目标子卡的多层级的流量管道确定之前,对目标子卡溢出后的流量进行获取。
例如,图2中两个子卡的最小保证都是5M,所以两个子卡有流量的两个优先级都消耗5M的最小令牌桶中的令牌,确定每个目标子卡的流量的容量大于第一预设值,即优先级为0的叶子管道消耗的令牌以及优先级为7的叶子管道消耗的令牌都是5M。又由两个子卡根管道最小保证都是50M,计算得到溢出的流量为50M-5M-5M=40M。
可选地,在本申请实施例提供的分布式设备带宽的调整方法中,基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道包括:判断第一层级流量管道是否设置了每个管道的优先级;若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
例如,图2中的目标子卡设置了叶子管道优先级,因此,基于溢出后的40M流量确定每个目标子卡的流量的第二层级流量管道,也即,向二级桶(对应于本申请中的第二层级流量管道)溢出的令牌是40M。
步骤S103,对多层级的流量管道中的流量的带宽进行计算,得到带宽信息。
具体的,一级桶叶子管道的根管道(对应于本申请的第一层级流量管道)溢出令牌至二级桶中,需要先对二级桶中令牌的消耗情况进行计算,以便后续对带宽进行调整。
可选地,在本申请实施例提供的分布式设备带宽的调整方法中,对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,该方法还包括:对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数;判断每个目标子卡的流量的剩余值是否大于预设令牌数;若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;基于差值确定每个目标子卡的流量的第三层级流量管道。
其中,计算每个目标子卡中不同优先级叶子管道的二级桶预设令牌数公式为:
具体的,对图2中的目标子卡基于分布式带宽调整,取8个优先级,数值越大优先级越低,基于上述的公式可计算得出优先级0、7(二级桶)溢出的令牌分别为40*8/36、40*1/36,基于图2中溢出的40M流量,对于优先级0的流量,在子卡0中,消耗掉一级桶中5M令牌后还剩5M<40*8/36,则只能消耗5M二级桶的令牌,也即,目标子卡的流量的剩余值不大于预设令牌数,不存在消耗第三层级流量管道的流量,但是子卡1却不同,消耗了5M一级桶令牌后还剩135M>40*8/36,将会耗尽该优先级二级桶的流量40*8/36后余下135-40*8/36流量,对于优先级7的流量,两个子卡都会耗尽该优先级二级桶的流量40*1/36,其中,对于子卡1,目标子卡优先级为0的流量的剩余值大于预设令牌数,需要消耗三级桶(对应于本申请中的第三层级流量管道)中的流量40–40*8/36–40*1/36=30M。
可选地,在本申请实施例提供的分布式设备带宽的调整方法中,在基于差值确定每个目标子卡的流量的第三层级流量管道之后,该方法还包括:判断是否存在管道的优先级大于管道预设优先级;若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
例如,在上述示例中优先级0大于优先级1,在子卡1中,此时向三级桶溢出的令牌为除优先级0、7的二级桶流量被耗尽外,余下优先级的令牌将会向三级桶溢出40–40*8/36–40*1/36=30M,此时优先级0还余下流量140–5–40*8/36>30,由于高优先级对三级桶的令牌绝对抢占,则最后优先级0的流量耗尽三级桶的30M流量,余下的140–5-40*8/36–30=865/9流量直接丢弃,即子卡1的丢弃(865/9)M流量。对于优先级1的流量,在子卡0中,消耗了一级桶和二级桶的令牌后还剩10–5–40*1/36=35/9流量全部消耗三级桶的流量。在子卡1中,由于三级桶的流量都被优先级0消耗,无令牌可用,最后剩下的140–5–40*1/36=1205/9全部丢弃,即local_drop_bytes_prio[0]=1205/9。
步骤S104,基于带宽信息对每个目标子卡的流量的配置进行调整。
具体的,各子卡通过新的配置进行流量控制,完善了流量控制的功能,补齐了分布式设备的功能缺陷。
可选地,在本申请实施例提供的分布式设备带宽的调整方法中,对多层级的流量管道中的流量的带宽进行计算,得到带宽信息包括:基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;基于计算结果确定每个目标子卡的流量的带宽信息。
图3是根据本申请实施例提供的分布式设备带宽的调整方法的分布式实例调整状态示意图,如图3所示,主控制卡总配置100M,向子卡0以及子卡1下发配置数据信息为50M,子卡0以及子卡1分别有两个管道有流量,管道优先级分别是0和7,各子卡的流量情况也如图2所示,子卡0的两个叶子管道分别有流量10M,且其最小保证桶为5M,最大限制桶为16M,子卡1的两个叶子管道分别有流量140M,且其最小保证桶为5M,最大限制桶为84M,将子卡0最终的输出带宽由20M数据信息调整为75/7M、以及子卡1最终的输出带宽由50M数据信息调整为625/7M,进一步地,在主控卡上优先级0和7通过的流量分别为87.78M以及12.22M,因此,本申请基于分布式的带宽调整,完善了流量控制的功能,补齐了分布式设备的功能缺陷。
图4是根据本申请实施例提供的分布式设备带宽的调整方法的分布式模型示意图,如图4示例,本申请基于分布式带宽调整,分为三个模块,分别为子卡1、主控卡以及子卡2,子卡1以及子卡2进行原始配置数据的收集,收集之后基于主控卡对子卡1以及子卡2中各优先级的带宽进行动态的调整,其中,对带宽的调整主要在带宽计算模块完成,将重新调整后的带宽进行在主控卡中重新下发至各个子卡中,以实现带宽的更新。
图5是根据本申请实施例提供的分布式设备带宽的调整方法的分布式算法示意图,如图5所示,算法的开始,针对确定的管道,对其每个子卡的数据进行汇聚,如果一级桶的令牌被耗尽(不存在向二级桶溢出)或者所有流量都是消耗一级桶的令牌,计算各子卡消耗令牌之和,结束循环;如果二级桶的令牌被耗尽(不存在向三级桶溢出),计算各子卡消耗令牌数之和,结束循环;如果二级桶的令牌被耗尽(存在向三级桶溢出),计算二级桶(优先级桶)的预留带宽(对应于本申请中的预设令牌数),之后计算三级桶(优先级桶)的预留带宽,计算各子卡消耗令牌数之和,之后结束循环。
需要说明的是,图5的算法的核心思想是对于总流量buffer,根据每个子卡一、二、三级桶的消耗令牌的情况,合理的将总流量buffer分给每一子卡,使在分布式设备中同样能够达到同图3相同的效果。其中ms_tokens、ms_ctokens分别表示最小保证、最大限制桶每毫秒(ms)产生的令牌数,通过该数值控制令牌产生的速度。total_ms_tokens、total_ms_ctokens表示主控卡的令牌产生速度,其值由配置决定,分布式带宽调整的目的就是把这两个值合理的分配到各子卡。主控卡每秒向子卡请求数据,从每一个子卡搜集数据进行汇聚,此时在主控卡上已经知道了每个子卡及总的流量数据。分布式带宽计算便是根据上一秒的历史流量数据动态的更新带宽。
图6是根据本申请实施例提供的分布式设备带宽的调整方法的子卡二级桶预留算法流程图,如图6所示,表示图5中①的算法流程,首先是计算子卡二级桶预留带宽的算法流程图。流量在最小保证得到保证之后将会消耗二级桶中的令牌,由于二级桶为每个优先级都预留有带宽,所以需要针对每个优先级进行计算。其中buffer–total_first_bytes表示一级桶向二级桶溢出的令牌,这部分令牌将按比例分发到各优先级桶。不论该优先级流量多大最多也只能消耗按份额分配的这部分流量,所以用total_max_second_prio[i]表示。另外total_bytes_sub_first_prio[i]表示除去使用最小保证桶之外的所有流量,该部分流量表示消耗二级桶令牌的能力,如果total_bytes_sub_first_prio[i]>total_max_second_prio[i]则将2级桶的流量耗尽,余下的流量接着使用三级桶的令牌,所有实际消耗二级桶令牌的数量为Min(total_bytes_sub_first_prio[i],total_max_second_prio[i])即两者的最小值。然后计算子卡预留的二级桶带宽,现在已经有了每个优先级总的二级桶预留带宽,根据子卡流量占所有流量的比例进行分配,得到每一个优先级的二级桶预留带宽,最后将所有优先级加起来,便得到了子卡的二级桶预留带宽local_second_reserve_bytes,结束循环。
图7是根据本申请实施例提供的分布式设备带宽的调整方法的子卡三级桶预留算法流程图,如图7所示,表示图5中②的算法流程图,是计算子卡三级桶预留带宽,计算过程采用递归的方式进行。首先需要记录下有哪些优先级用到了三级桶的令牌,为了实现高优先级对三级桶令牌的绝对抢占,需要先考虑高优先级。remain_tokens=buffer–total_first_bytes–total_second_reserve_bytes表示为最小保证和各优先级预留后还剩下的令牌,高优先级对这部分带宽进行绝对抢占。先取所有优先级中最高的优先级i,如果total_third_bytes_prio[i]+total_drop_bytes_prio[i]>=remain_tokens,即该优先级的流量大于等于还剩下的令牌数,则把这部分的流量按照子卡流量的比例全部分配给该优先级,如果小于的话,则为该高优先级的全部流量预留令牌,余下的令牌再让接下来低优先级的流量绝对抢占,更新remain_tokens和Mask如此递归下去,直至remain_tokens分配完或所有的优先级都处理完成,如果还有令牌余下的话则平均的分配给各子卡。在每次递归返回时保证local_third_reserve_bytes和local_reserve相等,如果是内层的递归则将local_reserve传递到上一层的local_reserve,逐层累加。则在最后一层计算完成后便得到最后的local_third_reserve_bytes,结束循环。
具体的,由上述图2-图7可知,对各个目标子卡初始情况的流量统计如下表一所示:
表一
子卡0(M) | 子卡1(M) | 主控卡(M) | ||
local_first_bytes_prio[0] | 5 | 5 | total_first_bytes_prio[0] | 10 |
… | 0 | 0 | … | 0 |
local_first_bytes_prio[7] | 5 | 5 | tota_first_bytes_prio[7] | 10 |
local_first_bytes | 10 | 10 | tota_first_bytes | 20 |
local_second_bytes_prio[0] | 5 | 40*8/36(80/9) | tota_second_bytes_prio[0] | 125/9 |
… | 0 | 0 | … | 0 |
local_second_bytes_prio[7] | 40/36(10/9) | 10/9 | total_second_bytes_prio[7] | 20/9 |
local_second_bytes | 55/9 | 10 | tota_second_bytes | 145/9 |
local_third_bytes_prio[0] | 0 | 30 | tota_third_bytes_prio[0] | 30 |
… | 0 | 0 | … | 0 |
local_third_bytes_prio[7] | 35/9 | 0 | tota_third_bytes_prio[7] | 35/9 |
local-third_bytes | 35/9 | 30 | tota_third_bytes | 305/9 |
local_pass_bytes_prio[0] | 10 | 395/9 | tota_pass_bytes_prio[0] | 485/9 |
… | 0 | 0 | … | 0 |
local_pass_bytes_prio[7] | 10 | 55/9 | tota_pass_bytes_prio[7] | 145/9 |
local_pass_bytes | 20 | 50 | tota_pass-bytes | 70 |
local-drop_bytes_prio[0] | 0 | 865/9 | tota_drop_bytes_prio(0] | 865/9 |
… | 0 | 0 | … | 0 |
local_drop_bytes_prio[7] | 0 | 1205/9 | tota_drop_bytes_prio[7] | 1205/9 |
local_drop_bytes | 0 | 230 | tota_drop_bytes | 230 |
其中,表一中“...”表示没有流量的优先级的相关参数。显然存在如下关系:local_first_bytes=local_first_bytes_prio[0]+…+local_first_bytes_prio[7]、total_first_bytes=total_first_bytes_prio[0]+…+total_first_bytes_prio[7]、total_first_bytes_prio[i]=SUM(local_first_bytes_prio[i])即各子卡之和、total_first_bytes=SUM(local_first_bytes)即各子卡之和;显然对于其他参数second、third、pass、drop也满足这样的关系。
需要说明的是,对于表一中pass即通过的流量,等于消耗一、二、三级桶令牌而得以通行的流量之和,以子卡0优先级7的流量local_pass_bytes_prio[7]=local_first_bytes_prio[7]+local_second_bytes_prio[7]+local_third_bytes_prio[7]=5+10/9+35/9=10M,其余的也可通过该公式计算得到,对于主控卡的流量则通过各子卡(本例中只有两个子卡)之和计算而得,此处便不再赘述。接着便可通过上面表格中的数据计算二级桶和三级桶预留带宽即local_second_reserve_bytess、local_third_reserve_bytess。
由上述图2-图7可知,对各个目标子卡的二级桶预留算法流程图进行计算,结果如下表二所示:
表二
pri0=i | total_max_second_prio[i] | total_bytes_sub_first_prio[i] | total_second_reserv_prio[i] | local_bytes_sub_first_prio[i](子卡0、子卡1) | local_second_reserve_prio[i](子卡0、子卡1) |
0 | 160/9 | 1260/9 | 160/9 | 45/9、1215/9 | 40/63、1080/63 |
1 | 140/9 | 0 | 0 | 0、0 | 0、0 |
2 | 120/9 | 0 | 0 | 0、0 | 0、0 |
3 | 100/9 | 0 | 0 | 0、0 | 0、0 |
4 | 80/9 | 0 | 0 | 0、0 | 0、0 |
5 | 60/9 | 0 | 0 | 0、0 | 0、0 |
6 | 40/9 | 0 | 0 | 0、0 | 0、0 |
7 | 20/9 | 1260/9 | 20/9 | 45/9、1215/9 | 5/63、135/63 |
其中,total_max_second_prio[i]可通过公式一计算而得,由于这是所有字卡汇总的数据,此时overflow=80M,该值表示,流量消耗了一级桶令牌后余下的流量最多能消耗二级桶中的令牌数。total_bytes_sub_first_prio[i]则表示实际消耗了一级桶令牌后余下的流量,即total_bytes_sub_first_prio[i]=total_pass_bytes_prio[i]+total_drop_bytes_prio[i]-total_first_bytes_prio[i]。同理local_bytes_sub_first_prio[i]也可通过相应的公式计算出来。total_second_reserve_prio[i]表示需要预留的二级桶中的令牌也就是应该消耗的二级桶中的令牌,所以total_second_reserve_prio[i]=min(total_max_second_prio[i],total_bytes_sub_first_prio[i]),即取两者中的最小值。然后计算local_second_reserve_prio[i]=total_scond_reserve_prio[i]*local_bytes_sub_first_prio[i]/total_bytes_sub_first_prio[i]结果如图表二所示。将所有优先级相加便得到如下表三的两个重要结果。
由上述图2-图7可知,对各个目标子卡的二级桶预留结果数据如下表三所示:
表三
total_second_reserve_bytes | local_second_reserve_bytes(子卡0、子卡1) |
20 | 45/63、1215/63(5/7、135/7) |
由上述图2-图7可知,对各个目标子卡的三级桶预留初始化数据如下表四所示:
表四
remain_tokens | Mask |
100-20-20=60 | 01111110 |
其中,remain_tokens=buffer-total_first_bytes-total_second_reserve_bytes=100-20-20=60;Mask=~prio_mask(对Prio_mask每一位取反),由于只有优先级0和7的流量消耗三级桶的令牌,则prio_mask=10000001,得Mask=01111110。将这两个初值带入流程图进行计算,发现满足total_third_bytes_prio[0]+total_drop_bytes_prio[0]>=remain_tokens(30+865/9>60)则需要将所有剩余的流量都预留给高优先级0(高优先级绝对抢占),那么便可用通过以下公式计算得local_reserve=remain_tokens*(local_third_bytes_prio[i]+local_drop_bytes_prio[i])/(total_third_bytes_prio[i]+total_drop_bytes_prio[i]),这个时候由于还只是第一层的递归,令local_thirdreserve_bytes=local_reserve,直接返回local_third_reserve_bytes,如果不是第一层迭代的话,则返回local_reserve,将local_reserve的值传递到上一层递归,再一层一层的计算local_third_reserve_bytes。由于子卡0优先级0的local_third_bytes_prio[i]+local_drop_bytes_prio[i]=0,则60M令牌全部分配给子卡1。
由上述图2-图7可知,对各个目标子卡的三级桶预留结果数据如下表五所示:
表五
子卡0 | 子卡1 | |
local_first_bvtes | 10 | 10 |
local_second_reserve_bytes | 5/7 | 135/7 |
local_third_reserve_bytes | 0 | 60 |
local_new_ms_tokens | total_ms_tokens*3/28 | total_ms_tokens*25/28 |
local_new_ms_ctokens | total_ms_ctokens*3/28 | total_ms_ctokens*25/28 |
min | 75/7 | 625/7 |
max | 75/7 | 625/7 |
其中,表五中min、max分别表示子卡的配置数据,在主控卡上100M对应每毫秒产生令牌数为total_mss_tokens,根据比例子卡0、1分别为75/7M和625/7M,当然也可以根据min=local_first_bytes+local_second_resesrve_bytes+local_third_resesrve_bytes得到。
由上述图2-图7可知,对各个目标子卡通过调整配置后,新的流量控制结果如下表六所示:表六
子卡0(M) | 子卡1(M) | 主控卡(M) | ||
local_first_bytes_prio[0] | 5 | 5 | total_first_bytes_prio[0] | 10 |
… | 0 | 0 | … | 0 |
local_first_bytes_prio[7] | 5 | 5 | tota_first_bytes_prio[7] | 10 |
local_first_bytes | 10 | 10 | tota_first_bytes | 20 |
local_second_bytes_prio[0] | 40/252 | 4440/252 | tota_second_bytes_prio[0] | 4480/252 |
… | 0 | 0 | … | 0 |
local_second_bytes_prio[7] | 5/252 | 555/252 | total_second_bytes_prio[7] | 560/252 |
local_second_bytes | 45/252 | 4995/252 | tota_second_bytes | 5040/252 |
local_third_bytes_prio[0] | 15/28 | 1665/28 | tota_third_bytes_prio[0] | 1680/28 |
… | 0 | 0 | … | 0 |
1ocal_third_bytes_prio[7] | 0 | 0 | tota_third_bytes_prio[7] | 0 |
local_third_bytes | 15/28 | 1665/28 | tota_third_bytes | 1680/28 |
local_pass_bytes_prio[0] | 1435/252 | 20685/252 | tota_pass_bytes_prio[0] | 22120/252 |
… | 0 | 0 | … | 0 |
local_pass_bytes_prio[7] | 1265/252 | 1815/252 | tota_pass_bytes_prio[7] | 3080/252 |
local_pass_bytes | 2700/252 | 22500/252 | tota_pass_bytes | 100 |
local_drop_bytes_prio[0] | 1085/252 | 14595/252 | tota_drop_bytes_prio[0] | 15680/252 |
… | 0 | 0 | … | 0 |
local_drop_bytes_prio[7] | 1255/252 | 33465/252 | tota_drop_bytes_prio[7] | 34720/252 |
local_drop_bytes | 2340/252 | 48060/252 | tota_drop_bytes | 200 |
需要说明的是,如果通过各管道的流量仍保持图2至图7中不变的话,则计算得到的结果和上面一致;如果管道流量发送信息改变,则会根据该算法不断的进行调整,使得最终结果一致,进一步体现了本申请的分布式带宽调整方法的高度灵活性。
综上,本申请实施例提供的分布式设备带宽的调整方法,通过在分布式设备上,接收多个目标子卡的流量;基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;基于带宽信息对每个目标子卡的流量的配置进行调整。解决了相关技术中在分布式设备中难以对各子卡的带宽进行调整的问题。通过对多个目标子卡基于令牌桶算法确定其对应的多层级的流量管道,并基于多层级的流量管道进行带宽计算,进而实现了在分布式设备中对各子卡的带宽进行调整的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种分布式设备带宽的调整装置,需要说明的是,本申请实施例的分布式设备带宽的调整装置可以用于执行本申请实施例所提供的用于分布式设备带宽的调整方法。以下对本申请实施例提供的分布式设备带宽的调整装置进行介绍。
图8是根据本申请实施例的分布式设备带宽的调整装置的示意图。如图8所示,该装置包括:第一接收单元801、第一确定单元802、第一计算单元803、第一调整单元804。
具体的,第一接收单元801,用于在分布式设备上,接收多个目标子卡的流量;
第一确定单元802,用于基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;
第一计算单元803,用于对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;
第一调整单元804,用于基于带宽信息对每个目标子卡的流量的配置进行调整。
综上,本申请实施例提供的分布式设备带宽的调整装置,通过第一接收单元801在分布式设备上,接收多个目标子卡的流量;第一确定单元802基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;第一计算单元803对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;第一调整单元804基于带宽信息对每个目标子卡的流量的配置进行调整,解决了相关技术中解决了相关技术中在分布式设备中难以对各子卡的带宽进行调整的问题。通过对多个目标子卡基于令牌桶算法确定其对应的多层级的流量管道,并基于多层级的流量管道进行带宽计算,进而实现了在分布式设备中对各子卡的带宽进行调整的效果。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,该装置还包括:第一发送单元,用于在在分布式设备上,接收多个目标子卡的流量之前,通过主控制卡发送配置信息至每个目标子卡;第一配置单元,用于基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;第一上传单元,用于将每个目标子卡采集到的流量上传至主控制卡中。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,第一确定单元802包括:第一确定模块,用于将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;第二确定模块,用于基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,该装置还包括:第一处理单元,用于在基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道之前,若每个目标子卡的流量的容量大于第一预设值时,对第一层级流量管道的流量进行溢出处理,得到溢出后的流量。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,第二确定模块包括:第一判断子模块,用于判断第一层级流量管道是否设置了每个管道的优先级;第一确定子模块,用于若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,该装置还包括:第二计算单元,用于对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数;第一判断单元,用于判断每个目标子卡的流量的剩余值是否大于预设令牌数;第三计算单元,用于若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;第二确定单元,用于基于差值确定每个目标子卡的流量的第三层级流量管道。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,该装置还包括:第二判断单元,用于在基于差值确定每个目标子卡的流量的第三层级流量管道之后,判断是否存在管道的优先级大于管道预设优先级;第一消耗单元,用于若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
可选地,在本申请实施例提供的分布式设备带宽的调整装置中,第一计算单元803包括:第一消耗模块,用于基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;第一计算模块,用于基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;第三确定模块,用于基于计算结果确定每个目标子卡的流量的带宽信息。
分布式设备带宽的调整装置包括处理器和存储器,上述的第一接收单元801、第一确定单元802、第一计算单元803、第一调整单元804等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来进行分布式设备带宽的调整。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现分布式设备带宽的调整方法。
本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行分布式设备带宽的调整方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:在分布式设备上,接收多个目标子卡的流量;基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;基于带宽信息对每个目标子卡的流量的配置进行调整。
处理器执行程序时还实现以下步骤:在在分布式设备上,接收多个目标子卡的流量之前,通过主控制卡发送配置信息至每个目标子卡;基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;将每个目标子卡采集到的流量上传至主控制卡中。
处理器执行程序时还实现以下步骤:将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
处理器执行程序时还实现以下步骤:在基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道之前,若每个目标子卡的流量的容量大于第一预设值时,对第一层级流量管道的流量进行溢出处理,得到溢出后的流量。
处理器执行程序时还实现以下步骤:判断第一层级流量管道是否设置了每个管道的优先级;若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
处理器执行程序时还实现以下步骤:对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数;判断每个目标子卡的流量的剩余值是否大于预设令牌数;若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;基于差值确定每个目标子卡的流量的第三层级流量管道。
处理器执行程序时还实现以下步骤:在基于差值确定每个目标子卡的流量的第三层级流量管道之后,判断是否存在管道的优先级大于管道预设优先级;若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
处理器执行程序时还实现以下步骤:基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;基于计算结果确定每个目标子卡的流量的带宽信息。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:在分布式设备上,接收多个目标子卡的流量;基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;对多层级的流量管道中的流量的带宽进行计算,得到带宽信息;基于带宽信息对每个目标子卡的流量的配置进行调整。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在在分布式设备上,接收多个目标子卡的流量之前,通过主控制卡发送配置信息至每个目标子卡;基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;将每个目标子卡采集到的流量上传至主控制卡中。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道之前,若每个目标子卡的流量的容量大于第一预设值时,对第一层级流量管道的流量进行溢出处理,得到溢出后的流量。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:判断第一层级流量管道是否设置了每个管道的优先级;若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数;判断每个目标子卡的流量的剩余值是否大于预设令牌数;若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;基于差值确定每个目标子卡的流量的第三层级流量管道。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在基于差值确定每个目标子卡的流量的第三层级流量管道之后,判断是否存在管道的优先级大于管道预设优先级;若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;基于计算结果确定每个目标子卡的流量的带宽信息。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种分布式设备带宽的调整方法,其特征在于,包括:
在分布式设备上,接收多个目标子卡的流量;
基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;
对所述多层级的流量管道中的流量的带宽进行计算,得到带宽信息;
基于所述带宽信息对所述每个目标子卡的流量的配置进行调整;
其中,对所述多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,所述方法还包括:
对第二层级流量管道的流量进行计算,得到所述第二层级流量管道的预设令牌数,其中,每个第二层级流量管道是由溢出后的流量确定所述每个目标子卡的流量的第二层级流量管道,所述溢出后的流量是在所述每个目标子卡的流量的容量大于每个目标子卡的流量首次经过的流量管道的下限流量值的情况下,对所述每个目标子卡的流量首次经过的流量管道的流量进行溢出处理得到的;
判断所述每个目标子卡的流量的剩余值是否大于所述预设令牌数;
若所述每个目标子卡的流量的剩余值大于所述预设令牌数,计算所述每个目标子卡的流量的剩余值与所述预设令牌数的差值;
基于所述差值确定所述每个目标子卡的流量的第三层级流量管道;
其中,对所述多层级的流量管道中的流量的带宽进行计算,得到带宽信息包括:
基于所述多层级的流量管道确定所述每个目标子卡的流量消耗的目标令牌数量;
基于对所述每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;
基于所述计算结果确定所述每个目标子卡的流量的带宽信息。
2.根据权利要求1所述的方法,其特征在于,在分布式设备上,接收多个目标子卡的流量之前,所述方法还包括:
通过主控制卡发送配置信息至每个目标子卡;
基于所述配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;
将每个目标子卡采集到的流量上传至所述主控制卡中。
3.根据权利要求1所述的方法,其特征在于,基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道包括:
将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,所述第一层级流量管道的下限流量值为第一预设值,所述第一层级流量管道的上限流量值为第二预设值;
基于所述第一层级流量管道确定所述每个目标子卡的流量的多层级的流量管道。
4.根据权利要求3所述的方法,其特征在于,基于所述第一层级流量管道确定所述每个目标子卡的流量的多层级的流量管道包括:
判断所述第一层级流量管道是否设置了每个管道的优先级;
若所述第一层级流量管道设置了所述每个管道的优先级时,基于所述溢出后的流量确定所述每个目标子卡的流量的第二层级流量管道。
5.根据权利要求1所述的方法,其特征在于,在基于所述差值确定所述每个目标子卡的流量的第三层级流量管道之后,所述方法还包括:
判断是否存在管道的优先级大于管道预设优先级;
若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,所述目标管道为优先级大于管道预设优先级的管道。
6.一种分布式设备带宽的调整装置,其特征在于,包括:
第一接收单元,用于在分布式设备上,接收多个目标子卡的流量;
第一确定单元,用于基于令牌桶算法确定每个目标子卡的流量的多层级的流量管道;
第一计算单元,用于对所述多层级的流量管道中的流量的带宽进行计算,得到带宽信息;
第一调整单元,用于基于所述带宽信息对所述每个目标子卡的流量的配置进行调整;
其中,所述装置还包括:第二计算单元,用于对多层级的流量管道中的流量的带宽进行计算,得到带宽信息之前,对第二层级流量管道的流量进行计算,得到第二层级流量管道的预设令牌数,其中,每个第二层级流量管道是由溢出后的流量确定所述每个目标子卡的流量的第二层级流量管道,所述溢出后的流量是在所述每个目标子卡的流量的容量大于每个目标子卡的流量首次经过的流量管道的下限流量值的情况下,对所述每个目标子卡的流量首次经过的流量管道的流量进行溢出处理得到的;第一判断单元,用于判断每个目标子卡的流量的剩余值是否大于预设令牌数;第三计算单元,用于若每个目标子卡的流量的剩余值大于预设令牌数,计算每个目标子卡的流量的剩余值与预设令牌数的差值;第二确定单元,用于基于差值确定每个目标子卡的流量的第三层级流量管道;
其中,所述第一计算单元包括:第一消耗模块,用于基于多层级的流量管道确定每个目标子卡的流量消耗的目标令牌数量;第一计算模块,用于基于对每个目标子卡的流量消耗的目标令牌数量进行计算,得到计算结果;第三确定模块,用于基于计算结果确定每个目标子卡的流量的带宽信息。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一发送单元,用于在分布式设备上,接收多个目标子卡的流量之前,通过主控制卡发送配置信息至每个目标子卡;
第一配置单元,用于基于配置信息对每个目标子卡进行配置,采用配置后的目标子卡进行的流量采集;
第一上传单元,用于将每个目标子卡采集到的流量上传至主控制卡中。
8.根据权利要求6所述的装置,其特征在于,所述第一确定单元还包括:
第一确定模块,用于将每个目标子卡的流量首次经过的流量管道确定为每个目标子卡的第一层级流量管道,其中,第一层级流量管道的下限流量值为第一预设值,第一层级流量管道的上限流量值为第二预设值;
第二确定模块,用于基于第一层级流量管道确定每个目标子卡的流量的多层级的流量管道。
9.根据权利要求8所述的装置,其特征在于,所述第二确定模块还包括:
第一判断子模块,用于判断第一层级流量管道是否设置了每个管道的优先级;
第一确定子模块,用于若第一层级流量管道设置了每个管道的优先级时,基于溢出后的流量确定每个目标子卡的流量的第二层级流量管道。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二判断单元,用于在基于差值确定每个目标子卡的流量的第三层级流量管道之后,判断是否存在管道的优先级大于管道预设优先级;
第一消耗单元,用于若存在,将经过目标管道的目标子卡的流量对第三层级流量管道的目标令牌数量进行消耗,其中,目标管道为优先级大于管道预设优先级的管道。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序被处理器执行时,实现权利要求1至5中任意一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序被处理器执行时,实现权利要求1至5中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111044704.5A CN113783727B (zh) | 2021-09-07 | 2021-09-07 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111044704.5A CN113783727B (zh) | 2021-09-07 | 2021-09-07 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113783727A CN113783727A (zh) | 2021-12-10 |
CN113783727B true CN113783727B (zh) | 2024-04-26 |
Family
ID=78841491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111044704.5A Active CN113783727B (zh) | 2021-09-07 | 2021-09-07 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113783727B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6801500B1 (en) * | 2000-05-18 | 2004-10-05 | Cisco Technology, Inc. | Method and apparatus for providing reserved rates to multiple flows on a network interface |
CN106789745A (zh) * | 2015-11-23 | 2017-05-31 | 深圳市中兴微电子技术有限公司 | 一种带宽获取方法和装置 |
CN108804043A (zh) * | 2018-06-26 | 2018-11-13 | 郑州云海信息技术有限公司 | 分布式块存储系统带宽流量控制方法、装置、设备及介质 |
CN110149282A (zh) * | 2019-01-30 | 2019-08-20 | 华为技术有限公司 | 流量调度方法和装置 |
CN111082978A (zh) * | 2019-12-05 | 2020-04-28 | 西安电子科技大学 | 面向sdn网络的效用带宽分配方法 |
WO2020098612A1 (zh) * | 2018-11-12 | 2020-05-22 | 华为技术有限公司 | 一种动态带宽分配方法和相关设备 |
CN111786993A (zh) * | 2020-06-30 | 2020-10-16 | 山石网科通信技术股份有限公司 | Dns隧道流量的检测方法及装置 |
CN111901249A (zh) * | 2020-07-31 | 2020-11-06 | 深圳前海微众银行股份有限公司 | 业务限流方法、装置、设备及存储介质 |
CN112152863A (zh) * | 2020-10-21 | 2020-12-29 | 新华三信息安全技术有限公司 | 分布式带宽分配方法及装置 |
WO2021115482A1 (zh) * | 2019-12-13 | 2021-06-17 | 深圳市中兴微电子技术有限公司 | 一种令牌的调整方法及装置 |
CN113285886A (zh) * | 2021-06-11 | 2021-08-20 | 北京天融信网络安全技术有限公司 | 一种带宽分配的方法、装置、电子设备及可读存储介质 |
CN113315671A (zh) * | 2021-07-28 | 2021-08-27 | 阿里云计算有限公司 | 流量限速与信息配置方法、路由节点、系统及存储介质 |
CN113328957A (zh) * | 2021-05-18 | 2021-08-31 | 深圳Tcl新技术有限公司 | 一种流量控制方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8000235B2 (en) * | 2008-10-05 | 2011-08-16 | Contextream Ltd. | Bandwidth allocation method and apparatus |
US10333821B2 (en) * | 2014-11-25 | 2019-06-25 | Vmware, Inc. | Method and system for optimizing network traffic in a distributed system with a point of convergence |
US11531493B2 (en) * | 2019-12-19 | 2022-12-20 | Western Digital Technologies, Inc. | Request throttling in distributed storage systems |
-
2021
- 2021-09-07 CN CN202111044704.5A patent/CN113783727B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6801500B1 (en) * | 2000-05-18 | 2004-10-05 | Cisco Technology, Inc. | Method and apparatus for providing reserved rates to multiple flows on a network interface |
CN106789745A (zh) * | 2015-11-23 | 2017-05-31 | 深圳市中兴微电子技术有限公司 | 一种带宽获取方法和装置 |
CN108804043A (zh) * | 2018-06-26 | 2018-11-13 | 郑州云海信息技术有限公司 | 分布式块存储系统带宽流量控制方法、装置、设备及介质 |
WO2020098612A1 (zh) * | 2018-11-12 | 2020-05-22 | 华为技术有限公司 | 一种动态带宽分配方法和相关设备 |
CN110149282A (zh) * | 2019-01-30 | 2019-08-20 | 华为技术有限公司 | 流量调度方法和装置 |
CN111082978A (zh) * | 2019-12-05 | 2020-04-28 | 西安电子科技大学 | 面向sdn网络的效用带宽分配方法 |
WO2021115482A1 (zh) * | 2019-12-13 | 2021-06-17 | 深圳市中兴微电子技术有限公司 | 一种令牌的调整方法及装置 |
CN111786993A (zh) * | 2020-06-30 | 2020-10-16 | 山石网科通信技术股份有限公司 | Dns隧道流量的检测方法及装置 |
CN111901249A (zh) * | 2020-07-31 | 2020-11-06 | 深圳前海微众银行股份有限公司 | 业务限流方法、装置、设备及存储介质 |
CN112152863A (zh) * | 2020-10-21 | 2020-12-29 | 新华三信息安全技术有限公司 | 分布式带宽分配方法及装置 |
CN113328957A (zh) * | 2021-05-18 | 2021-08-31 | 深圳Tcl新技术有限公司 | 一种流量控制方法、装置及电子设备 |
CN113285886A (zh) * | 2021-06-11 | 2021-08-20 | 北京天融信网络安全技术有限公司 | 一种带宽分配的方法、装置、电子设备及可读存储介质 |
CN113315671A (zh) * | 2021-07-28 | 2021-08-27 | 阿里云计算有限公司 | 流量限速与信息配置方法、路由节点、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113783727A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514309B2 (en) | Method and apparatus for accelerating distributed training of a deep neural network | |
CN110032447B (zh) | 用于分配资源的方法和装置 | |
CN108667748B (zh) | 一种控制带宽的方法、装置、设备和存储介质 | |
CN109002357B (zh) | 资源分配方法、装置及物联网系统 | |
CN107391527A (zh) | 一种基于区块链的数据处理方法及设备 | |
WO2015149514A1 (zh) | 一种虚拟机的部署方法及装置 | |
CN112068957A (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN106899519B (zh) | 支付渠道流量配置方法及装置 | |
CN106100901B (zh) | 一种流速控制方法及装置 | |
CN112328202B (zh) | 一种流量控制方法、装置及电子设备和存储介质 | |
CN104426953A (zh) | 一种分配计算资源的方法及装置 | |
CN103248622B (zh) | 一种自动伸缩的在线视频服务质量保障方法及系统 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
CN115237580A (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN113783727B (zh) | 分布式设备带宽的调整方法、装置、存储介质及处理器 | |
CN103336670A (zh) | 一种基于数据温度对数据块自动进行分布的方法和装置 | |
CN118278524A (zh) | 一种基于分层加载的神经网络推理方法、设备及介质 | |
CN113747450B (zh) | 一种移动网络中业务部署方法、装置及电子设备 | |
CN113810306B (zh) | 带宽分配方法、装置、存储介质及处理器 | |
CN112612583A (zh) | 数据同步方法、装置、计算机设备和可读存储介质 | |
CN105095146B (zh) | 基于内存控制器的带宽分配方法及装置 | |
CN103268293B (zh) | 多通道多速率数据采集系统存储器管理方法 | |
CN109819449A (zh) | 基于虚拟资源的基站硬件资源分配方法及装置 | |
CN114780201A (zh) | 资源调整方法、装置、电子设备及存储介质 | |
CN111290850B (zh) | 一种数据存储方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |