CN113285886B - 一种带宽分配的方法、装置、电子设备及可读存储介质 - Google Patents
一种带宽分配的方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113285886B CN113285886B CN202110650761.1A CN202110650761A CN113285886B CN 113285886 B CN113285886 B CN 113285886B CN 202110650761 A CN202110650761 A CN 202110650761A CN 113285886 B CN113285886 B CN 113285886B
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- transmission state
- class
- leaf
- subclass
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请属于通信技术领域,公开了一种带宽分配的方法、装置、电子设备及可读存储介质,该方法包括,按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,其中,不同工作核心分配的非叶子类不同;分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽。这样,通过多个工作核心并行分配带宽,以及通过各类的历史使用带宽和报文传输状态进行带宽调整,提高了带宽分配的效率。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种带宽分配的方法、装置、电子设备及可读存储介质。
背景技术
在数据传输过程中,通常周期性为分层结构令牌桶队列(Hierarchical TokenBucket Queue,HTB)中的各类(CLASS)分配相应的可调用带宽,进而通过HTB中的叶子类采用分配的可调用带宽进行报文发送,以满足不同业务的报文速率需求。
其中,HTB队列的基本元素是CLASS,CLASS之间通过父子关系形成一个树形结构,没有子类的CLASS称为叶子类。叶子类用于报文发送,非叶子类用于带宽调度。
但是,对HTB中的各类进行带宽分配时,分配效率和性能较低,进而使得报文发送效率较低。
由此,如何提高带宽调度效率,是一个需要解决的技术问题。
发明内容
本申请实施例的目的在于提供一种带宽分配的方法、装置、电子设备及可读存储介质,用以在针对HTB进行带宽调度时,提高带宽调度效率。
一方面,提供一种带宽分配的方法,应用于包含至少一个工作核心的电子设备,包括:
按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,其中,不同工作核心分配的非叶子类不同;
分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:
获取一个非叶子类的可调用带宽,一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;
根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽。
在上述实现过程中,通过多个工作核心并行分配带宽,以及通过各类历史使用带宽和报文传输状态进行带宽调整,提高了带宽分配的效率。
较佳的,在获取一个非叶子类的可调用带宽,一个非叶子类中的每一子类的历史使用带宽以及报文传输状态之前,进一步包括:
分别针对每一个叶子类,执行以下步骤:根据一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定一个叶子类的报文传输状态;
根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态。
在上述实现过程中,根据各叶子类的历史使用带宽和报文丢弃数量,确定各类的报文传输状态。
较佳的,根据一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定一个叶子类的报文传输状态,包括:
获取针对一个叶子类设置的最大带宽,以及一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量;
若确定一个叶子类的报文丢弃数量低于预设数量阈值,或者,一个叶子类的历史使用带宽不低于一个类的最大带宽,则确定一个叶子类的报文传输状态为正常传输状态,否则,确定一个叶子类的报文传输状态为异常传输状态。
在上述实现过程中,根据各叶子类的历史使用带宽和报文丢弃数量,确定各叶子类的报文传输状态。
较佳的,根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态,包括:
按照由叶子类至根类的顺序,分别针对叶子类至根类之间的每一类,执行以下步骤:
若一个类中的一个子类的报文传输状态为异常传输状态,则确定一个类的报文传输状态为异常传输状态。
在上述实现过程中,根据子类的报文传输状态,确定父类的报文传输状态。
较佳的,根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得每一子类的可调用带宽,包括:
从一个非叶子类的子类中,筛选出报文传输状态为异常传输状态的子类;
分别按照筛选出的每一子类的预设基准带宽,从一个非叶子类的可调用带宽中分配带宽给相应子类,获得每一子类的可调用带宽以及一个非叶子类的可调用带宽分配后剩余的第一分配带宽;
若第一分配带宽大于零,则根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,并获得第一分配带宽分配后剩余的第二分配带宽;
若第二分配带宽大于零,则分别根据每一子类的最大带宽,将第二分配带宽进行分配。
在上述实现过程中,按照各子类的预设基准带宽、优先级、历史使用带宽以及最大带宽进行带宽分配。
较佳的,根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,包括:
按照优先级由高到低的顺序,分别针对每一优先级,执行以下步骤:
若一个优先级的子类的数量为一个,则判断第一分配带宽是否高于一个优先级的子类的历史使用带宽,若是,则确定分配至一个优先级的子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,确定分配至一个优先级的子类的可调用带宽为第一分配带宽,并停止带宽分配;
若一个优先级的子类的数量为非一个,则判断第一分配带宽是否高于一个优先级的各子类的历史使用带宽的第一加和,若是,则确定分别分配至一个优先级的每一子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,根据一个优先级的各子类的预设基准带宽之间的比例关系以及一个优先级的各子类的历史使用带宽,将第一分配带宽全部分配至一个优先级的各子类,并停止带宽分配。
在上述实现过程中,根据同一优先级中各子类的预设基准带宽之间的比例关系进行带宽分配。
较佳的,分别根据每一子类的最大带宽,将第二分配带宽进行分配,包括:
若存在报文传输状态为异常传输状态的子类,则确定分别针对每一报文传输状态为异常传输状态的子类设置的最大带宽的第二加和;
若第二分配带宽高于第二加和,则根据报文传输状态为异常传输状态的子类的最大带宽,从第二分配带宽中分配带宽给报文传输状态为异常传输状态的子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽达到最大带宽;
若第二分配带宽不高于第二加和,则根据报文传输状态为异常传输状态的各子类的预设基准带宽之间的比例关系,将第二分配带宽分配至报文传输状态为异常传输状态的各子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽不高于最大带宽。
在上述实现过程中,将异常传输状态的子类进行优先分配,然后,再对其它子类进行相应带宽分配。
较佳的,在将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽之后,进一步包括:
分别按照每一叶子类的可调用带宽,进行报文发送。
在上述实现过程中,通过分配的可调用带宽,实现报文发送。
较佳的,按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,包括:
分别对每一非叶子类的序号进行哈希处理,获得相应的哈希值;
按照确定出的哈希值,分别将每一非叶子类分配至相应的工作核心。
在上述实现过程中,为各工作核心分配相应的非叶子类。
一方面,提供一种带宽分配的装置,该装置包含至少一个工作核心,包括:
分配单元,用于按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,其中,不同工作核心分配的非叶子类不同;
执行单元,用于分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:
获取一个非叶子类的可调用带宽,一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽。
较佳的,执行单元还用于:
分别针对每一个叶子类,执行以下步骤:根据一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定一个叶子类的报文传输状态;
根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态。
较佳的,执行单元还用于:
获取针对一个叶子类设置的最大带宽,以及一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量;
若确定一个叶子类的报文丢弃数量低于预设数量阈值,或者,一个叶子类的历史使用带宽不低于一个类的最大带宽,则确定一个叶子类的报文传输状态为正常传输状态,否则,确定一个叶子类的报文传输状态为异常传输状态。
较佳的,执行单元还用于:
按照由叶子类至根类的顺序,分别针对叶子类至根类之间的每一类,执行以下步骤:
若一个类中的一个子类的报文传输状态为异常传输状态,则确定一个类的报文传输状态为异常传输状态。
较佳的,执行单元用于:
从一个非叶子类的子类中,筛选出报文传输状态为异常传输状态的子类;
分别按照筛选出的每一子类的预设基准带宽,从一个非叶子类的可调用带宽中分配带宽给相应子类,获得每一子类的可调用带宽以及一个非叶子类的可调用带宽分配后剩余的第一分配带宽;
若第一分配带宽大于零,则根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,并获得第一分配带宽分配后剩余的第二分配带宽;
若第二分配带宽大于零,则分别根据每一子类的最大带宽,将第二分配带宽进行分配。
较佳的,执行单元用于:
按照优先级由高到低的顺序,分别针对每一优先级,执行以下步骤:
若一个优先级的子类的数量为一个,则判断第一分配带宽是否高于一个优先级的子类的历史使用带宽,若是,则确定分配至一个优先级的子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,确定分配至一个优先级的子类的可调用带宽为第一分配带宽,并停止带宽分配;
若一个优先级的子类的数量为非一个,则判断第一分配带宽是否高于一个优先级的各子类的历史使用带宽的第一加和,若是,则确定分别分配至一个优先级的每一子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,根据一个优先级的各子类的预设基准带宽之间的比例关系以及一个优先级的各子类的历史使用带宽,将第一分配带宽全部分配至一个优先级的各子类,并停止带宽分配。
较佳的,执行单元用于:
若存在报文传输状态为异常传输状态的子类,则确定分别针对每一报文传输状态为异常传输状态的子类设置的最大带宽的第二加和;
若第二分配带宽高于第二加和,则根据报文传输状态为异常传输状态的子类的最大带宽,从第二分配带宽中分配带宽给报文传输状态为异常传输状态的子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽达到最大带宽;
若第二分配带宽不高于第二加和,则根据报文传输状态为异常传输状态的各子类的预设基准带宽之间的比例关系,将第二分配带宽分配至报文传输状态为异常传输状态的各子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽不高于最大带宽。
较佳的,执行单元还用于:
分别按照每一叶子类的可调用带宽,进行报文发送。
较佳的,分配单元用于:
分别对每一非叶子类的序号进行哈希处理,获得相应的哈希值;
按照确定出的哈希值,分别将每一非叶子类分配至相应的工作核心。
一方面,提供了一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种带宽分配的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种带宽分配的各种可选实现方式中提供的方法的步骤。
本申请实施例提供的一种带宽分配的方法、装置、电子设备及可读存储介质中,按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,其中,不同工作核心分配的非叶子类不同;分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:获取一个非叶子类的可调用带宽,一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽。这样,通过多个工作核心并行分配带宽,以及通过各类的历史使用带宽和报文传输状态进行带宽调整,提高了带宽分配的效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种带宽初始化的方法的实施流程图;
图2为本申请实施例提供的一种报文发送的方法的实施流程图;
图3为本申请实施例提供的一种报文传输状态确定的方法的实施流程图;
图4为本申请实施例提供的一种带宽分配的方法的实施流程图;
图5为本申请实施例提供的一种带宽分配的装置的结构框图;
图6为本申请实施方式中一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网类、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
HTB队列:基本元素是类,类之间通过父子关系形成一个树形结构。包括非叶子类和叶子类。
叶子类:为没有子类的类,用于报文发送。
非叶子类:包括根类,也可以称为内部类,为有子类的类,用于带宽调度。
为了在进行带宽调度时,可以提高带宽调度效率,本申请实施例提供了一种带宽分配的方法、装置、电子设备及可读存储介质。
本申请实施例中,执行主体可以为包含至少一个工作核心的电子设备,可选的,电子设备可以为服务器,也可以为终端设备。工作核心可以为CPU核心。
本申请实施例中,先按照预先针对各类设置的带宽配置信息,对各类进行带宽初始化。其中,带宽配置信息包括针对根类设置的预设总带宽,分别针对每一类设置的预设基准带宽以及最大带宽。
参阅图1所示,为本申请实施例提供的一种带宽初始化的方法的实施流程图,该方法的具体实施流程如下:
步骤100:获取针对根类设置的预设总带宽。
需要说明的是,预设总带宽即为针对根类设置的可调用带宽,可以是预先设置的固定值,也可以是根据当前网络状态等实际应用场景进行实时设置的,在此不作限制。
步骤101:获取分别针对根类的每一子类设置的预设基准带宽和最大带宽。
需要说明的是,一个HTB中包含一个根类,并至少包含一个根类之外的其它类,其它类可以为一个,也可以为多个,根类可以包含一个子类,也可以包含多个子类,在此不作限制。
步骤102:分别根据每一子类的预设基准带宽和最大带宽,将预设总带宽分配至根类的各子类。
具体的,执行步骤102时,可以采用以下步骤:
S1021:分别按照每一子类的预设基准带宽,将预设总带宽中的带宽进行分配,获得分配后的剩余的第一剩余带宽。
具体的,分别针对每一子类,执行以下步骤,直至不存在未分配带宽的子类,或者第一剩余带宽为零:
按照一个子类的预设基准带宽,为该子类分配带宽,使得该子类当前的可调用带宽为相应的预设基准带宽,更新分配后的剩余的第一剩余带宽。
S1022:按照各类的优先级,将第一剩余带宽再次进行分配。
具体的,按照优先级由高到低的顺序,依次针对每一优先级,执行以下步骤,直至不存在未再次分配带宽的子类,或者第一剩余带宽为零:
若一个优先级对应一个子类,则判断第一剩余带宽是否高于该子类的最大带宽,若是,则将该子类的可调用带宽调整为相应的最大带宽,否则,将第一剩余带宽均分配至该子类。
若一个优先级对应多个子类,则确定该多个子类对应的最大带宽的和,若第一剩余带宽高于该和,则分别将每一子类的可调用带宽调整为相应的最大带宽,否则,按照该多个子类的预设基准带宽之间的比例关系,将第一剩余带宽全部分配至该多个子类。
步骤103:根据根部的各子类的可调用带宽,以及其它各类的预设基准带宽和最大带宽,确定其它各类的可调用带宽。
具体的,执行步骤103时,采用与将根类的可调用带宽分配至根类的各子类相似的原理,依次将每一非叶子类的可调用带宽分配至相应的子类,在此不做赘述。
这样,每一子类均可以从父类中获得分配的可调用带宽,在后续的步骤中,叶子类就可以通过分配获得的可调用带宽进行报文发送。
需要说明的是,在进行带宽初始化时,可以仅通过一个工作核心进行带宽分配,也可以通过多个工作核心进行分配,在此不作限制。
参阅图2所示,为本申请实施例提供的一种报文发送的方法的实施流程图,该方法的具体实施流程如下:
步骤200:按照报文识别规则,分别确定每一待发送的报文对应的叶子类。
具体的,由于不同类型的报文的发文速率要求可能不同,因此,预先设置报文识别规则(FILTER RULES),即分别针对每一类型的报文设置相应的叶子类。
步骤201:确定叶子类当前的剩余带宽。
具体的,剩余带宽为可调用带宽与已使用带宽之间的差值。
一种实施方式中,根据可调用带宽,确定可发送字节数(TOKEN),并根据已发送报文,确定已发送字节数(SENTBYTE),以及根据可发送字节数与已发送字节数之间的差值,确定剩余带宽为TOKEN–SENTBYTE。
步骤202:判断剩余带宽是否高于待发送的报文的字节长度,若是,则执行步骤203,否则,执行步骤204。
步骤203:通过该叶子类发送该报文。
具体的,通过物理接口,将该报文进行发送。
进一步的,在发送报文之后,对已发送字节数以及剩余带宽进行更新。
步骤204:丢弃该报文。
本申请实施例中,按照时间片,周期性调整各类的可调用带宽,具体的,按照时间片进行报文发送,每一时间片结束后,确定各类的报文传输状态,并根据各类的报文传输状态,对各类的带宽进行重新调度,使得叶子类,采用更新后的可调用带宽进行后续的报文发送。
实际应用中,时间片的长度可以根据实际应用场景进行设置,如,1分钟,在此不作限制。
参阅图3所示,为本申请实施例提供的一种报文传输状态确定的方法的实施流程图,该方法的具体实施流程如下:
步骤300:确定上一时间片结束,则分别获取每一叶子类在上一时间片的历史使用带宽和报文丢弃数量。
具体的,报文丢弃数量为由于剩余带宽低于待发送的报文的字节长度而导致丢弃的报文的数量。
步骤301:分别根据每一叶子类的历史使用带宽和报文丢弃数量,确定相应的报文传输状态。
具体的,分别针对每一叶子类,执行以下步骤:
若一个叶子类的报文丢弃数量低于预设数量阈值,或者,该叶子类的历史使用带宽不低于该叶子类的最大带宽,则确定该叶子类的报文传输状态为正常传输状态,否则,确定该叶子类的报文传输状态为异常传输状态。
实际应用中,预设数量阈值可以根据实际应用场景进行设置,如,1,在此不作限制。
一种实施方式中,若报文丢弃数量为零,则确定该叶子类的报文传输状态为正常传输状态,若该叶子类的历史使用带宽不低于该叶子类的最大带宽,则无论是否存在丢弃报文,该叶子类的报文传输状态均为正常传输状态,若报文丢弃数量不为零,且该叶子类的历史使用带宽低于该叶子类的最大带宽,则确定该叶子类的报文传输状态为异常传输状态。
这样,就可以确定各叶子类的报文传输状态。
步骤302:根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态。
具体的,分别针对每一非叶子类,执行以下步骤:
根据一个非叶子类的至少一个子类的报文传输状态,确定该非叶子类的报文传输状态。
一种实施方式中,按照由叶子类至根类的顺序,分别针对叶子类至根类之间的每一类,执行以下步骤:
若一个类中的一个子类的报文传输状态为异常传输状态,则确定该一个类的报文传输状态为异常传输状态。
一种实施方式中,可以将报文传输状态为异常传输状态的类进行标记,如,可以采用EXHAUST_FLAG进行标记。
也就是说,一个类的各子类中,只要存在一个子类异常传输,则该类也标记为异常传输,只有一个类的所有子类均正常传输,该类才能判定为正常传输。
这样,就可以确定各类的报文传输状态,进而在后续步骤中,可以根据各类的报文传输状态以及历史使用带宽,对各类的可调用带宽进行适应性调整。
参阅图4所示,为本申请实施例提供的一种带宽分配的方法的实施流程图,该方法的具体实施流程如下:
步骤400:按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心。
具体的,若工作核心为至少两个,则分别获取每一非叶子类的序号,并分别对每一非叶子类的序号进行哈希处理,获得相应的哈希值,以及按照确定出的哈希值,分别将每一非叶子类分配至相应的工作核心。
其中,不同工作核心分配的非叶子类不同,工作核心以及非叶子类的数量均可以为一个或多个。
一种实施方式中,按照哈希值由高到低或者由低到高的顺序,将相应非叶子类依次分配至不同的工作核心。
一种实施方式中,也可以将各非叶子类随机分配至不同的工作核心。
实际应用中,将分层结构令牌桶队列中的非叶子类进行分配时,也可以采用其它方式,预设分配规则可以根据实际应用场景进行设置,在此不作限制。
一种实施方式中,每一叶子类均被分配至父类对应的工作核心中。
这样,每一工作核心就可以在后续步骤中,对分配的类进行带宽调度。
步骤401:分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将该一个非叶子类的可调用带宽进行分配,分别获得每一子类的可调用带宽。
具体的,分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:
S4011:获取一个非叶子类在当前时间片的可调用带宽,以及该一个非叶子类的每一子类在上一时间片的报文传输状态。
其中,根类之外的非叶子类的可调用带宽为工作核心根据各类在上一时间片的报文传输状态为该非叶子类分配的当前时间片可使用的带宽。非叶子类在上一时间片的报文传输状态,是根据各叶子类在上一时间片的报文丢弃数量、历史使用带宽以及最大带宽确定的。
需要说明的是,各类的带宽分配是按照时间片进行更新的,在上一时间片结束之后,工作核心就会根据各类在上一时间片的报文传输状态,调整各类在当前时间片的可调用带宽。
但是,由于各类带宽分配时,可能会出现超时处理的问题,即当前处理的一个非叶子类可能还未被分配可调用带宽,则可以将该非叶子类在上一时间片被分配的历史可调用带宽,设置为该非叶子类在当前时间片的可调用带宽。这样,各类的带宽分配不一定同步,但是,均可以获取各类在同一时间片的可调用带宽。
S4012:从一个非叶子类的子类中,筛选出报文传输状态为异常传输状态的子类。
S4013:分别按照筛选出的每一子类的预设基准带宽,从一个非叶子类的可调用带宽中分配带宽给相应子类,获得每一子类的可调用带宽以及该一个非叶子类分配后剩余的第一分配带宽。
具体的,分别针对每一筛选出的子类,执行以下步骤,直至筛选出的子类分配完成或者分配后剩余的第一分配带宽为零:
按照筛选出的一个子类的预设基准带宽,从一个非叶子类的可调用带宽中分配带宽给该子类,使得该子类的可调用带宽为相应的预设基准带宽,并获得可调用带宽分配后剩余的第一分配带宽。
S4014:若第一分配带宽大于零,则根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,并获得第一分配带宽分配后剩余的第二分配带宽。
具体的,按照优先级由高到低的顺序,分别针对每一优先级,执行以下步骤:
若一个优先级的子类的数量为一个,则判断第一分配带宽是否高于该优先级的子类的历史使用带宽,若是,则确定分配至一个优先级的子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,确定分配至该优先级的子类的可调用带宽为第一分配带宽,并停止带宽分配;
若一个优先级的子类的数量为非一个,则判断该第一分配带宽是否高于该优先级的各子类的历史使用带宽的第一加和,若是,则确定分别分配至该优先级的每一子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,根据该优先级的各子类的预设基准带宽之间的比例关系以及该优先级的各子类的历史使用带宽,将第一分配带宽全部分配至该优先级的各子类,并停止带宽分配。
其中,根据该优先级的各子类的预设基准带宽之间的比例关系以及该优先级的各子类的历史使用带宽,将第一分配带宽全部分配至该优先级的各子类时,可以循环执行以下步骤,直至分配后的第一分配带宽为零:
步骤a1:确定该优先级的待分配的各子类的预设基准带宽之间的比例关系。
步骤a2:将第一分配带宽,按照上述比例关系,向各子类分配带宽,确定存在被分配的可调用带宽达到相应历史使用带宽的子类时,从待分配的各子类中去除该子类,执行步骤a1。
最后,将第一分配带宽分配完成后,获得剩余的第二分配带宽。
S4015:若第二分配带宽大于零,则分别根据每一子类的最大带宽,将第二分配带宽进行分配。
具体的,执行S4015时,可以采用以下步骤:
步骤b1:若存在报文传输状态为异常传输状态的子类,则确定分别针对每一报文传输状态为异常传输状态的子类设置的最大带宽的第二加和。
步骤b2:若第二分配带宽高于第二加和,则根据报文传输状态为异常传输状态的子类的最大带宽,从第二分配带宽中分配带宽给报文传输状态为异常传输状态的子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽达到最大带宽。
步骤b3:若第二分配带宽不高于第二加和,则根据报文传输状态为异常传输状态的各子类的预设基准带宽之间的比例关系,将第二分配带宽分配至报文传输状态为异常传输状态的各子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽不高于最大带宽。
具体的,将第二分配带宽分配至报文传输状态为异常传输状态的各子类时,子类被分配的带宽不高于相应最大带宽。
进一步的,若不存在报文传输状态为异常传输状态的子类,还可以采用与将第二分配带宽分配至报文传输状态为异常传输状态的子类的相似原理,将第二分配带宽分配至各子类,在此不做赘述。
步骤402:分别按照每一叶子类的可调用带宽,控制相应叶子类进行报文发送。
本申请实施例中,周期性获取各叶子类的报文丢弃数量,并根据各叶子类在上一时间片的报文丢弃数量,确定各类在上一时间片的报文传输状态,以及将一个HTB中的各类分配至不同的工作核心后,每一工作核心,均周期性根据分配的各类在上一时间片的报文传输状态调整相应的可调用带宽,以便按照调整后的可调用带宽进行后续的报文发送,不同工作核心的带宽分配互不影响,均可以独立的异步运行,且不需要采用互斥的方式进行带宽分配,提高了带宽分配的效率,增强了带宽分配管理性能。进一步的,不需要在叶子类中缓存报文以进行报文发送,而是根据叶子类剩余的可调用带宽即令牌数进行报文发送,进一步提高了报文发送效率。
基于同一发明构思,本申请实施例中还提供了一种带宽分配的装置,由于上述装置及设备解决问题的原理与一种带宽分配的方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,其为本申请实施例提供的一种带宽分配的装置的结构示意图,包括:
分配单元501,用于按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,其中,不同工作核心分配的非叶子类不同;
执行单元502,用于分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:
获取一个非叶子类的可调用带宽,一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽。
较佳的,执行单元502还用于:
分别针对每一个叶子类,执行以下步骤:根据一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定一个叶子类的报文传输状态;
根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态。
较佳的,执行单元502还用于:
获取针对一个叶子类设置的最大带宽,以及一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量;
若确定一个叶子类的报文丢弃数量低于预设数量阈值,或者,一个叶子类的历史使用带宽不低于一个类的最大带宽,则确定一个叶子类的报文传输状态为正常传输状态,否则,确定一个叶子类的报文传输状态为异常传输状态。
较佳的,执行单元502还用于:
按照由叶子类至根类的顺序,分别针对叶子类至根类之间的每一类,执行以下步骤:
若一个类中的一个子类的报文传输状态为异常传输状态,则确定一个类的报文传输状态为异常传输状态。
较佳的,执行单元502用于:
从一个非叶子类的子类中,筛选出报文传输状态为异常传输状态的子类;
分别按照筛选出的每一子类的预设基准带宽,从一个非叶子类的可调用带宽中分配带宽给相应子类,获得每一子类的可调用带宽以及一个非叶子类的可调用带宽分配后剩余的第一分配带宽;
若第一分配带宽大于零,则根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,并获得第一分配带宽分配后剩余的第二分配带宽;
若第二分配带宽大于零,则分别根据每一子类的最大带宽,将第二分配带宽进行分配。
较佳的,执行单元502用于:
按照优先级由高到低的顺序,分别针对每一优先级,执行以下步骤:
若一个优先级的子类的数量为一个,则判断第一分配带宽是否高于一个优先级的子类的历史使用带宽,若是,则确定分配至一个优先级的子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,确定分配至一个优先级的子类的可调用带宽为第一分配带宽,并停止带宽分配;
若一个优先级的子类的数量为非一个,则判断第一分配带宽是否高于一个优先级的各子类的历史使用带宽的第一加和,若是,则确定分别分配至一个优先级的每一子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,根据一个优先级的各子类的预设基准带宽之间的比例关系以及一个优先级的各子类的历史使用带宽,将第一分配带宽全部分配至一个优先级的各子类,并停止带宽分配。
较佳的,执行单元502用于:
若存在报文传输状态为异常传输状态的子类,则确定分别针对每一报文传输状态为异常传输状态的子类设置的最大带宽的第二加和;
若第二分配带宽高于第二加和,则根据报文传输状态为异常传输状态的子类的最大带宽,从第二分配带宽中分配带宽给报文传输状态为异常传输状态的子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽达到最大带宽;
若第二分配带宽不高于第二加和,则根据报文传输状态为异常传输状态的各子类的预设基准带宽之间的比例关系,将第二分配带宽分配至报文传输状态为异常传输状态的各子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽不高于最大带宽。
较佳的,执行单元502还用于:
分别按照每一叶子类的可调用带宽,进行报文发送。
较佳的,分配单元501用于:
分别对每一非叶子类的序号进行哈希处理,获得相应的哈希值;
按照确定出的哈希值,分别将每一非叶子类分配至相应的工作核心。
本申请实施例提供的一种带宽分配的方法、装置、电子设备及可读存储介质中,按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至至少一个工作核心,其中,不同工作核心分配的非叶子类不同;分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:获取一个非叶子类的可调用带宽,一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;根据一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将一个非叶子类的可调用带宽进行分配,分别获得一个非叶子类的每一子类的可调用带宽。这样,通过多个工作核心并行分配带宽,以及通过各类的历史使用带宽和报文传输状态进行带宽调整,提高了带宽分配的效率,进而提高了报文发送效率。
图6示出了一种电子设备6000的结构示意图。参阅图6所示,电子设备6000包括:处理器6010、存储器6020、电源6030、显示单元6040、输入单元6050。
处理器6010是电子设备6000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器6020内的软件程序和/或数据,执行电子设备6000的各种功能,从而对电子设备6000进行整体监控。
本申请实施例中,处理器6010调用存储器6020中存储的计算机程序时执行如图4中所示的实施例提供的带宽分配的方法。
可选的,处理器6010可包括一个或多个处理单元;优选的,处理器6010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器6010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器6020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据电子设备6000的使用所创建的数据等。此外,存储器6020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
电子设备6000还包括给各个部件供电的电源6030(比如电池),电源可以通过电源管理系统与处理器6010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
显示单元6040可用于显示由用户输入的信息或提供给用户的信息以及电子设备6000的各种菜单等,本发明实施例中主要用于显示电子设备6000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元6040可以包括显示面板6041。显示面板6041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
输入单元6050可用于接收用户输入的数字或字符等信息。输入单元6050可包括触控面板6051以及其他输入设备6052。其中,触控面板6051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板6051上或在触控面板6051附近的操作)。
具体的,触控面板6051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器6010,并接收处理器6010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6051。其他输入设备6052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板6051可覆盖显示面板6041,当触控面板6051检测到在其上或附近的触摸操作后,传送给处理器6010以确定触摸事件的类型,随后处理器6010根据触摸事件的类型在显示面板6041上提供相应的视觉输出。虽然在图6中,触控面板6051与显示面板6041是作为两个独立的部件来实现电子设备6000的输入和输出功能,但是在某些实施例中,可以将触控面板6051与显示面板6041集成而实现电子设备6000的输入和输出功能。
电子设备6000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述电子设备6000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图6中没有示出,且不再详述。
本领域技术人员可以理解,图6仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (18)
1.一种带宽分配的方法,其特征在于,应用于包含至少一个工作核心的电子设备,包括:
按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至所述至少一个工作核心,其中,不同工作核心分配的非叶子类不同;
分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:
获取一个非叶子类的可调用带宽,所述一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;
根据所述一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将所述一个非叶子类的可调用带宽进行分配,分别获得所述一个非叶子类的每一子类的可调用带宽;
其中,所述根据所述一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将所述一个非叶子类的可调用带宽进行分配,分别获得每一子类的可调用带宽,包括:
从所述一个非叶子类的子类中,筛选出报文传输状态为异常传输状态的子类;分别按照筛选出的每一子类的预设基准带宽,从所述一个非叶子类的可调用带宽中分配带宽给相应子类,获得每一子类的可调用带宽以及所述一个非叶子类的可调用带宽分配后剩余的第一分配带宽;若所述第一分配带宽大于零,则根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从所述第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,并获得所述第一分配带宽分配后剩余的第二分配带宽;若所述第二分配带宽大于零,则分别根据每一子类的最大带宽,将所述第二分配带宽进行分配。
2.如权利要求1所述的方法,其特征在于,在所述获取一个非叶子类的可调用带宽,所述一个非叶子类中的每一子类的历史使用带宽以及报文传输状态之前,进一步包括:
分别针对每一个叶子类,执行以下步骤:根据所述一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定所述一个叶子类的报文传输状态;
根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态。
3.如权利要求2所述的方法,其特征在于,所述根据所述一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定所述一个叶子类的报文传输状态,包括:
获取针对所述一个叶子类设置的最大带宽,以及所述一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量;
若确定所述一个叶子类的报文丢弃数量低于预设数量阈值,或者,所述一个叶子类的历史使用带宽不低于所述一个叶子类的最大带宽,则确定所述一个叶子类的报文传输状态为正常传输状态,否则,确定所述一个叶子类的报文传输状态为异常传输状态。
4.如权利要求2所述的方法,其特征在于,所述根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态,包括:
按照由叶子类至根类的顺序,分别针对叶子类至根类之间的每一类,执行以下步骤:
若一个类中的一个子类的报文传输状态为异常传输状态,则确定所述一个类的报文传输状态为异常传输状态。
5.如权利要求1所述的方法,其特征在于,所述根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从所述第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,包括:
按照优先级由高到低的顺序,分别针对每一优先级,执行以下步骤:
若一个优先级的子类的数量为一个,则判断所述第一分配带宽是否高于所述一个优先级的子类的历史使用带宽,若是,则确定分配至所述一个优先级的子类的可调用带宽为相应的历史使用带宽,并更新所述第一分配带宽,否则,确定分配至所述一个优先级的子类的可调用带宽为所述第一分配带宽,并停止带宽分配;
若一个优先级的子类的数量为非一个,则判断所述第一分配带宽是否高于所述一个优先级的各子类的历史使用带宽的第一加和,若是,则确定分别分配至所述一个优先级的每一子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,根据所述一个优先级的各子类的预设基准带宽之间的比例关系以及所述一个优先级的各子类的历史使用带宽,将所述第一分配带宽全部分配至所述一个优先级的各子类,并停止带宽分配。
6.如权利要求1所述的方法,其特征在于,所述分别根据每一子类的最大带宽,将所述第二分配带宽进行分配,包括:
若存在报文传输状态为异常传输状态的子类,则确定分别针对每一报文传输状态为异常传输状态的子类设置的最大带宽的第二加和;
若所述第二分配带宽高于所述第二加和,则根据报文传输状态为异常传输状态的子类的最大带宽,从所述第二分配带宽中分配带宽给报文传输状态为异常传输状态的子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽达到最大带宽;
若所述第二分配带宽不高于所述第二加和,则根据报文传输状态为异常传输状态的各子类的预设基准带宽之间的比例关系,将所述第二分配带宽分配至报文传输状态为异常传输状态的各子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽不高于最大带宽。
7.如权利要求1-4任一项所述的方法,其特征在于,在将所述一个非叶子类的可调用带宽进行分配,分别获得所述一个非叶子类的每一子类的可调用带宽之后,进一步包括:
分别按照每一叶子类的可调用带宽,进行报文发送。
8.如权利要求1-4任一项所述的方法,其特征在于,所述按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至所述至少一个工作核心,包括:
分别对每一非叶子类的序号进行哈希处理,获得相应的哈希值;
按照确定出的哈希值,分别将每一非叶子类分配至相应的工作核心。
9.一种带宽分配的装置,其特征在于,所述装置包含至少一个工作核心,包括:
分配单元,用于按照预设分配规则,将分层结构令牌桶队列中的非叶子类,分配至所述至少一个工作核心,其中,不同工作核心分配的非叶子类不同;
执行单元,用于分别通过每一工作核心,分别针对分配的每一非叶子类,执行以下步骤:
获取一个非叶子类的可调用带宽,所述一个非叶子类中的每一子类的历史使用带宽以及报文传输状态,其中,分层结构令牌桶队列中的根类的可调用带宽为预设总带宽;根据所述一个非叶子类中的每一子类的历史使用带宽和报文传输状态,将所述一个非叶子类的可调用带宽进行分配,分别获得所述一个非叶子类的每一子类的可调用带宽;
所述执行单元用于:从所述一个非叶子类的子类中,筛选出报文传输状态为异常传输状态的子类;分别按照筛选出的每一子类的预设基准带宽,从所述一个非叶子类的可调用带宽中分配带宽给相应子类,获得每一子类的可调用带宽以及所述一个非叶子类的可调用带宽分配后剩余的第一分配带宽;若所述第一分配带宽大于零,则根据报文传输状态为正常传输状态的子类的优先级以及历史使用带宽,从所述第一分配带宽中分配带宽给报文传输状态为正常传输状态的子类,并获得所述第一分配带宽分配后剩余的第二分配带宽;若所述第二分配带宽大于零,则分别根据每一子类的最大带宽,将所述第二分配带宽进行分配。
10.如权利要求9所述的装置,其特征在于,所述执行单元还用于:
分别针对每一个叶子类,执行以下步骤:根据所述一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量,确定所述一个叶子类的报文传输状态;
根据各叶子类的报文传输状态,分别确定每一非叶子类的报文传输状态。
11.如权利要求10所述的装置,其特征在于,所述执行单元还用于:
获取针对所述一个叶子类设置的最大带宽,以及所述一个叶子类在上一个时间片的历史使用带宽和报文丢弃数量;
若确定所述一个叶子类的报文丢弃数量低于预设数量阈值,或者,所述一个叶子类的历史使用带宽不低于所述一个叶子类的最大带宽,则确定所述一个叶子类的报文传输状态为正常传输状态,否则,确定所述一个叶子类的报文传输状态为异常传输状态。
12.如权利要求10所述的装置,其特征在于,所述执行单元还用于:
按照由叶子类至根类的顺序,分别针对叶子类至根类之间的每一类,执行以下步骤:
若一个类中的一个子类的报文传输状态为异常传输状态,则确定所述一个类的报文传输状态为异常传输状态。
13.如权利要求9所述的装置,其特征在于,所述执行单元用于:
按照优先级由高到低的顺序,分别针对每一优先级,执行以下步骤:
若一个优先级的子类的数量为一个,则判断所述第一分配带宽是否高于所述一个优先级的子类的历史使用带宽,若是,则确定分配至所述一个优先级的子类的可调用带宽为相应的历史使用带宽,并更新所述第一分配带宽,否则,确定分配至所述一个优先级的子类的可调用带宽为所述第一分配带宽,并停止带宽分配;
若一个优先级的子类的数量为非一个,则判断所述第一分配带宽是否高于所述一个优先级的各子类的历史使用带宽的第一加和,若是,则确定分别分配至所述一个优先级的每一子类的可调用带宽为相应的历史使用带宽,并更新第一分配带宽,否则,根据所述一个优先级的各子类的预设基准带宽之间的比例关系以及所述一个优先级的各子类的历史使用带宽,将所述第一分配带宽全部分配至所述一个优先级的各子类,并停止带宽分配。
14.如权利要求9所述的装置,其特征在于,所述执行单元用于:
若存在报文传输状态为异常传输状态的子类,则确定分别针对每一报文传输状态为异常传输状态的子类设置的最大带宽的第二加和;
若所述第二分配带宽高于所述第二加和,则根据报文传输状态为异常传输状态的子类的最大带宽,从所述第二分配带宽中分配带宽给报文传输状态为异常传输状态的子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽达到最大带宽;
若所述第二分配带宽不高于所述第二加和,则根据报文传输状态为异常传输状态的各子类的预设基准带宽之间的比例关系,将所述第二分配带宽分配至报文传输状态为异常传输状态的各子类,使得分配至每一报文传输状态为异常传输状态的子类的可调用带宽不高于最大带宽。
15.如权利要求9-12任一项所述的装置,其特征在于,所述执行单元还用于:
分别按照每一叶子类的可调用带宽,进行报文发送。
16.如权利要求9-12任一项所述的装置,其特征在于,所述分配单元用于:
分别对每一非叶子类的序号进行哈希处理,获得相应的哈希值;
按照确定出的哈希值,分别将每一非叶子类分配至相应的工作核心。
17.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-8任一所述方法。
18.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-8任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110650761.1A CN113285886B (zh) | 2021-06-11 | 2021-06-11 | 一种带宽分配的方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110650761.1A CN113285886B (zh) | 2021-06-11 | 2021-06-11 | 一种带宽分配的方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113285886A CN113285886A (zh) | 2021-08-20 |
CN113285886B true CN113285886B (zh) | 2021-10-15 |
Family
ID=77284185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110650761.1A Active CN113285886B (zh) | 2021-06-11 | 2021-06-11 | 一种带宽分配的方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113285886B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722097B (zh) * | 2021-08-27 | 2024-04-19 | 北京天融信网络安全技术有限公司 | 一种浪涌保护方法、装置、电子设备及存储介质 |
CN113783727B (zh) * | 2021-09-07 | 2024-04-26 | 山石网科通信技术股份有限公司 | 分布式设备带宽的调整方法、装置、存储介质及处理器 |
CN113810306A (zh) * | 2021-09-07 | 2021-12-17 | 山石网科通信技术股份有限公司 | 带宽分配方法、装置、存储介质及处理器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138610A (zh) * | 2019-05-10 | 2019-08-16 | 新华三信息安全技术有限公司 | 一种业务报文的发送方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782869B1 (en) * | 2007-11-29 | 2010-08-24 | Huawei Technologies Co., Ltd. | Network traffic control for virtual device interfaces |
CN101958842B (zh) * | 2010-10-28 | 2013-07-24 | 神州数码网络(北京)有限公司 | 一种基于用户的流量控制方法 |
CN103260197B (zh) * | 2013-04-28 | 2016-09-28 | 小米科技有限责任公司 | 一种控制带宽的方法、装置和设备 |
CN105490967A (zh) * | 2014-09-17 | 2016-04-13 | 中兴通讯股份有限公司 | 一种带宽分配方法及装置 |
CN107682282B (zh) * | 2017-09-15 | 2021-04-06 | 北京外通电子技术公司 | 保障业务带宽的服务质量方法及网络设备 |
-
2021
- 2021-06-11 CN CN202110650761.1A patent/CN113285886B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138610A (zh) * | 2019-05-10 | 2019-08-16 | 新华三信息安全技术有限公司 | 一种业务报文的发送方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113285886A (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113285886B (zh) | 一种带宽分配的方法、装置、电子设备及可读存储介质 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US10628216B2 (en) | I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status | |
CN112165691B (zh) | 内容分发网络调度方法、装置、服务器和介质 | |
CN110808922B (zh) | 一种消息处理方法、装置、存储介质及电子设备 | |
CN107241281B (zh) | 一种数据处理方法及其装置 | |
CN111813513A (zh) | 基于分布式的实时任务调度方法、装置、设备及介质 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN111694646B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN108351772A (zh) | 跨应用实例的标识符 | |
CN109873868A (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN112437018A (zh) | 分布式集群的流量控制方法、装置、设备和存储介质 | |
WO2020119029A1 (zh) | 分布式任务调度方法、系统及存储介质 | |
CN109840142A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN101576829B (zh) | 嵌入式Linux系统中应用进程的托管方法及系统 | |
EP3525101B1 (en) | Data backup method, apparatus, storage medium, and terminal | |
CN111338745B (zh) | 一种虚拟机的部署方法、装置及智能设备 | |
CN109684080A (zh) | 集中式任务调度方法、系统及存储介质 | |
CN109766172A (zh) | 一种异步任务调度方法以及装置 | |
CN115185697A (zh) | 一种基于kubernetes的集群资源调度方法、系统、设备和存储介质 | |
CN115017030A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
EP2622499B1 (en) | Techniques to support large numbers of subscribers to a real-time event | |
CN111796940A (zh) | 一种资源分配方法、装置和电子设备 | |
CN116032614A (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 |