CPU过载控制方法、装置及系统

阅读: 评论:0

著录项
  • CN201110388058.4
  • 20111128
  • CN103139097A
  • 20130605
  • 华为技术服务有限公司
  • 汪道明;林祥员
  • H04L12/819(2013.01)I
  • H04L12/819(2013.01)I

  • 河北省廊坊市经济技术开发区望京大道西侧
  • 中国,CN,河北(13)
摘要
本发明实施例公开了一种CPU过载控制方法、装置和系统,方法包括:在所述CPU中设置多级漏桶,所述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,所述顶级漏桶的权重水位为所述CPU能处理的最大令牌数;所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的权重水位,其中,所述叶子漏桶,用于在对应的实体队列中有报文时,判断当前水位是否超过当前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理;如果超过权重水位,则向上级漏桶申请令牌;所述顶级漏桶,用于接收下级漏桶的令牌申请,判断当前水位是否超过顶级漏桶的权重水位,如果没有超过,则允许所述下级漏桶申请令牌。
权利要求

1.一种CPU过载控制系统,其特征在于,在所述CPU中设置多级漏桶, 所述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应一个 优先级实体队列;所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的 权重水位,其中,

所述叶子漏桶,用于在对应的实体队列中有报文时,判断当前水位是否 超过当前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理; 如果超过权重水位,则向上级漏桶申请令牌;

所述顶级漏桶,用于接收下级漏桶的令牌申请,判断当前水位是否超过 顶级漏桶的权重水位,如果没有超过,则允许所述下级漏桶申请令牌。

2.根据权利要求1所述的系统,其特征在于,每个叶子漏桶设置有加权 循环调度算法WRR权重值,所述顶级漏桶的权重水位根据每个叶子漏桶的 WRR权重值分配给所述若干个叶子漏桶。

3.根据权利要求1所述的系统,其特征在于,所述顶级漏桶的当前水位 等于其下级漏桶的当前水位之和。

4.根据权利要求1所述的系统,其特征在于,所述CPU按照设定的周期 比较当前CPU占用率和目标CPU占用率,当所述当前CPU占用率低于所述目标 CPU占用率时,增加所述顶级漏桶的权重水位;当所述当前CPU占用率高于所 述目标CPU占用率时,减少所述顶级漏桶的权重水位。

5.根据权利要求1所述的系统,其特征在于,所述CPU按照设定的周期 判断是否有丢包事件发生,如果没有,则将各级漏桶的当前水位刷新为0;如 果有,则给占用带宽多的漏桶设置带宽门限以限制所述占用带宽多的漏桶使 用带宽,并将各级漏桶的当前水位刷新为0。

6.根据权利要求5所述的系统,其特征在于,所述带宽门限基于加权轮 询算法和所述占用带宽多的漏桶所允许通过的流量。

7.根据权利要求1所述的系统,其特征在于,所述叶子漏桶还用于映射 管理任务,根据CPU占用时间计算管理任务需要申请的令牌数。

8.根据权利要求1‑7任意一项所述的系统,其特征在于,所述系统还包括 若干个中间漏桶,所述中间漏桶的权重水位之和等于所述顶级漏桶的权重水 位;每个中间漏桶为所述若干个叶子漏桶中的至少一个的父漏桶,用于反映 所辖子漏桶的当前水位。

9.一种CPU过载控制方法,其特征在于,所述CPU设置有多级漏桶,所 述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应一个优 先级实体队列;所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的权 重水位,所述方法包括:

所述叶子漏桶在对应的实体队列中有报文时,判断当前水位是否超过当 前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理;如果 超过权重水位,则向上级漏桶申请令牌,以使得所述上级漏桶根据所述上级 漏桶的当前水位和所述上级漏桶的权重水位判断是否允许所述叶子漏桶申请 令牌。

10.根据权利要求9所述的方法,其特征在于,每个叶子漏桶设置有WRR 权重值,所述顶级漏桶的权重水位根据每个叶子漏桶的WRR权重值分配给所 述若干个叶子漏桶。

11.一种CPU,其特征在于,所述CPU中设置有多级漏桶,所述多级漏桶 至少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应一个优先级实体队 列;所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的权重水位,其 中,

所述叶子漏桶,用于在对应的实体队列中有报文时,判断当前水位是否 超过当前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理; 如果超过权重水位,则向上级漏桶申请令牌;

所述顶级漏桶,用于接收下级漏桶的令牌申请,判断当前水位是否超过 顶级漏桶的权重水位,如果没有超过,则允许所述下级漏桶申请令牌。

12.根据权利要求11所述的CPU,其特征在于,还包括若干个中间漏桶, 所述中间漏桶的权重水位之和等于所述顶级漏桶的权重水位;每个中间漏桶 为所述若干个叶子漏桶中的至少一个的父漏桶,用于反映所辖子漏桶的当前 水位。

说明书
技术领域

本发明涉及通信技术领域,尤其涉及一种CPU(Central Processing Unit, 中央处理器)过载控制方法、装置及系统。

在网络设备出现的一些问题中,报文冲击导致CPU过载一直是个很严重 的问题,一旦发生CPU过载,会导致很多问题,如:网管不能管理网络设备、 设备业务单板故障、用户的正常业务不能上线(如组播、PPPOE等)、甚至 系统故障等,而随着用户量的增加,该问题将会日益突出。

网络设备会同时承载多种业务,如语音业务、PPPOE、组播业务等,当 发生CPU过载时,大流量的业务(如组播业务)会影响语音业务,对用户而 言,这是不可接受的,因此需要解决CPU在过载时,不同业务之间的公平性, 这样,某种业务过载不影响其他业务的正常处理。

现有网络设备上的过载控制方案,主要采用漏桶原理对报文进行控制, 系统将所有接收的报文注入到一个漏桶中,通过调整输出报文的速率来对 CPU占用率的调整。

漏桶(Leaky Bucket)算法是一种有效的过载控制算法,可以对进入网络的 业务速率进行监控和调整,保证业务的平均(或峰值)速率不超过被接纳时的预 置速率,而且容许业务有一定的突发性。漏桶算法的思想很简单,就是设计 一个具有漏桶特性的缓冲器,就好比用一个底部开有小孔的桶接水,那么不 论向桶里倒水的速度是否变化,水从孔中流出的速度都是恒定的,只有桶空 了,水的流出速率才变为零。如果不顾桶的大小,以太高的速度向里倒水, 水就会从上沿溢出。

在实现上,漏桶可被设计为一个计数器,每当信息源产生一个信元时计 数值加1,同时计数值按一个适当的速率a减少。如图1所示,在计数值达到 设定的阈值N(漏桶容量)时到达的信元将被丢弃或被标识。漏桶的两个控 制参数是漏出速率a和漏桶容量N。

在现有方案中,当前漏出速率a是根据CPU占用率动态调整的,当CPU 占用率高于设定的目标值时,开始调低漏出速率a,这样报文到达的速度被快 速的抑制;当CPU占用率没有达到目标值时,调高漏出速率a,容量N保持 不变。

然而现有的这种方式不能解决在过载情况下不同业务之间处理的公平 性,也不能保证某种流量的报文冲击不影响其他业务报文。同时也不能解决 用户管理任务(如告警处理、加载处理、数据保存处理、MIB处理等)的过 载控制,不能保证设备升级、正常运行的可靠性。

本发明实施例提供一种CPU过载控制系统,在所述CPU中设置多级漏桶, 所述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应一个 优先级实体队列;所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的 权重水位,其中,

所述叶子漏桶,用于在对应的实体队列中有报文时,判断当前水位是否 超过当前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理; 如果超过权重水位,则向上级漏桶申请令牌;

所述顶级漏桶,用于接收下级漏桶的令牌申请,判断当前水位是否超过 顶级漏桶的权重水位,如果没有超过,则允许所述下级漏桶申请令牌。

本发明实施例提供一种CPU过载控制方法,所述CPU设置有多级漏桶,所 述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应一个优 先级实体队列;所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的权 重水位,所述方法包括:

所述叶子漏桶在对应的实体队列中有报文时,判断当前水位是否超过当 前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理;如果 超过权重水位,则向上级漏桶申请令牌,以使得所述上级漏桶根据所述上级 漏桶的当前水位和所述上级漏桶的权重水位判断是否允许所述叶子漏桶申请 令牌。

本发明实施例提供一种CPU,所述CPU中设置多级漏桶,所述多级漏桶至 少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应一个优先级实体队列; 所述若干个叶子漏桶的权重水位之和等于所述顶级漏桶的权重水位,其中,

所述叶子漏桶,用于在对应的实体队列中有报文时,判断当前水位是否 超过当前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理; 如果超过权重水位,则向上级漏桶申请令牌;

所述顶级漏桶,用于接收下级漏桶的令牌申请,判断当前水位是否超过 顶级漏桶的权重水位,如果没有超过,则允许所述下级漏桶申请令牌。

本发明实施例提供的方法、装置和系统,在系统受到报文攻击时,不仅 可以保证系统的当前CPU占用率不超过目标CPU占用率,同时可以保证在 CPU繁忙时,不同协议报文的带宽公平性,不影响其他协议报文的正常处理。

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图 仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造 性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中漏桶技术示意图;

图2为本发明实施例提供的CPU过载控制系统的架构的示意图;

图3为本发明实施例提供的CPU过载控制系统的架构的示意图;

图4为本发明实施例提供的管理任务的令牌数计算方法的示意图;

图5为本发明实施例提供的CPU过载控制方法逐级申请令牌的过程的示 意图。

图6为本发明实施例提供的CPU过载控制方法的流程图。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种CPU过载控制系统,如图2所示,在所述CPU 中设置多级漏桶,所述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,每个 叶子漏桶对应一个优先级的实体队列。

所述叶子漏桶,用于在对应的实体队列中有报文时,判断当前水位是否 超过当前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理; 如果超过权重水位,则向上级漏桶申请令牌;

所述顶级漏桶,用于接收下级漏桶的令牌申请,判断当前水位是否超过 顶级漏桶的权重水位,如果没有超过,则允许所述下级漏桶申请令牌。

本实施例中的实体队列用于收集对应类型的报文。

本实施例中的多级漏桶还可以包括多个中间漏桶,如图3所示,作为举 例,叶子漏桶可以是图3中的四级漏桶,中间漏桶可以是图3中的一级漏桶 和二级漏桶。

顶级漏桶:设置的权重水位代表CPU的总处理能力,对应系统的令牌。 可以根据目标CPU占用率给顶级漏桶设置权重水位,比如当CPU能处理的最 大令牌数为1000个时,如果希望CPU的占用率为80%,则可是给顶级漏桶 设置800权重水位,也即对应800个令牌。可以根据顶级漏桶所辖下级漏桶 的WRR(Weighted Round Robin,加权循环调度算法)权重值将顶级漏桶的 权重水位分配给所辖下级漏桶。

中间漏桶:每个中间漏桶设置有一个WRR权重值,用于反映该中间漏桶 所辖的叶子漏桶所对应业务的优先级,所辖的叶子漏桶所对应业务的优先级 越高的,WRR权重值可以越大。每个中间漏桶的权重水位可以采用下面的公 式计算获取:

权重水位=WRR权重值*上级漏桶权重水位 (1)

所有中间漏桶的权重水位之和等于顶级漏桶的权重水位。

本实施例中的中间漏桶可以不映射到实体队列,用于反映所辖叶子漏桶 的当前水位,每个中间漏桶的权重水位根据所辖下级漏桶的WRR权重值分配 给叶子漏桶。

叶子漏桶:每个叶子漏桶对应一个优先级的实体队列,隶属于顶级漏桶 或者中间漏桶。每个叶子漏桶也设置有一个WRR权重值,用于反映对应业务 的优先级。每个叶子漏桶的权重水位可以采用公式(1)计算得到。

基于上述架构,当系统收到某种类型的报文时,将进入对应的实体队列, 轮询到对应的叶子漏桶时,叶子漏桶启动令牌申请过程,包括:

叶子漏桶判断当前水位是否超过该叶子漏桶的权重水位,如果没有超过, 则申请令牌对实体队列中的报文进行处理,如果超过了,则像上级漏桶申请 令牌。

上级漏桶在接收到叶子漏桶的令牌申请后,判断当前水位是否超过自己 的权重水位,如果没有超过,则允许所述叶子漏桶申请令牌;如果超过,则 继续向上级漏桶申请令牌,按照这种逐级申请的方式,子漏桶可以抢占上级 漏桶的带宽,直到顶级漏桶的权重水位用完。

其中,当前水位用于反映已经申请到的令牌数。

本实施例中,CPU会按照设定的周期(如1秒)比较当前CPU占用率和 目标CPU占用率,当所述当前CPU占用率低于所述目标CPU占用率时,增 加顶级漏桶的权重水位;当所述当前CPU占用率高于所述目标CPU占用率时, 减少所述顶级漏桶的权重水位。

CPU也可以按照设定的周期(如1秒)判断是否有丢包事件发生,如果 没有,则将各级漏桶的当前水位刷新为0;如果有,则给占用带宽多的漏桶设 置带宽门限以限制所述占用带宽多的漏桶使用带宽,所述带宽门限基于加权 轮询算法和所述占用带宽多的漏桶所允许通过的流量,并将各级漏桶的当前 水位刷新为0。通过门限技术,可以解决某类报文独占系统带宽的问题,避免 该类报文影响其他报文的带宽,从而保证不同业务之间的带宽公平性。

本实施例提供的系统,还可以将管理任务(如告警处理、加载处理、数 据保存处理、MIB处理、单板配置恢复等)纳入进来进行管理,也即本实施 例中的叶子漏桶可以映射到管理任务。

管理任务同普通协议报文的最大差别表现在:普通协议报文的流量是按 照pps(报文数/每秒)来计算的,统计某类普通协议报文的报文数就很容易 计算出该类报文所占用的带宽;而管理任务对系统的CPU占用同系统接收的 报文数目没有直接关联,举例如下:

系统执行数据保存操作时,系统会将需要保存的数据收集到内存中,然 后将待保存的数据分批写入到非易失存储介质中(如FLASH/硬盘),此时 CPU的消耗主要是在往非易失存储介质的写入过程中。

因此,对于管理任务不能按照统计报文数(pps)来计算带宽,应该按照 管理任务在一个统计周期内占用的时间来计算带宽。

具体算法如下:

当前水位(消耗令牌数)=任务占用时间*单位时间映射的令牌数。

图4以保存作为示例,计算在一个统计周期(1000ms)中保存任务所消 耗的令牌数:

保存任务漏桶水位=600ms*1令牌/ms=600令牌

其中,1ms对应1个令牌。

本实施例提供的CPU过载控制系统,可以保证系统的CPU占用率不超过 目标CPU占用率,同时可以保证在CPU繁忙时,不同协议报文的带宽公平性, 不影响其他协议报文的正常处理。

本实施例提供的CPU过载控制系统,还可以解决用户管理任务的过载控 制,保证系统设备升级的成功率,同时CPU占用率会控制在目标CPU占用率, 用户管理任务和协议报文会统一由CPU过载控制系统控制,解决二者CPU占 用率抢占冲突的问题,同时保证二者之间的带宽公平性。

本发明实施例还提供一种CPU过载控制方法,所述CPU中设置有多级漏 桶,所述多级漏桶至少包括顶级漏桶和若干个叶子漏桶,每个叶子漏桶对应 一个优先级实体队列;所述若干个叶子漏桶的权重水位之和等于所述顶级漏 桶的权重水位,所述方法包括:

所述叶子漏桶在对应的实体队列中有报文时,判断当前水位是否超过当 前叶子漏桶的权重水位,如果没有超过,则申请令牌对报文进行处理;如果 超过权重水位,则向上级漏桶申请令牌,以使得所述上级漏桶根据所述上级 漏桶的当前水位和所述漏桶的权重水位判断是否允许所述叶子漏桶申请令 牌。

在申请令牌的过程中,WRR算询到的叶子漏桶可以采用逐级申请的 方式,如图5所示,具体的过程如图6所示,包括:

步骤600,所述叶子漏桶在对应的实体队列中有报文时,判断当前水位是 否超过当前叶子漏桶的权重水位,如果没有超过,执行步骤602;如果超过了, 执行步骤604.

步骤602,则申请令牌对报文进行处理。

步骤604,则向上级漏桶申请令牌。

上级漏桶也采取与所述叶子漏桶相同的处理方式,根据该上级漏桶的当 前水位和所述上级漏桶的权重水位判断是否允许所述叶子漏桶申请令牌,如 果该上级漏桶的当前水位超过该上级漏桶的权重水位,则依次向上级漏桶申 请令牌。

本实施例提供的方法,CPU还会按照设定的周期(如1秒)比较当前CPU 占用率和目标CPU占用率,当所述当前CPU占用率低于所述目标CPU占用 率时,增加顶级漏桶的权重水位;当所述当前CPU占用率高于所述目标CPU 占用率时,减少所述顶级漏桶的权重水位。CPU也可以按照设定的周期(如 1秒)判断是否有丢包事件发生,如果没有,则将各级漏桶的当前水位刷新为 0;如果有,则给占用带宽多的漏桶设置带宽门限以限制所述占用带宽多的漏 桶使用带宽,所述带宽门限基于加权轮询算法和所述占用带宽多的漏桶所允 许通过的流量,并将各级漏桶的当前水位刷新为0。通过门限技术,可以解决 某类报文独占系统带宽的问题,避免该类报文影响其他报文的带宽,从而保 证不同业务之间的带宽公平性。

本实施例提供的方法,通过采样逐级申请令牌的方式,子漏桶可以抢占 父漏桶的带宽,按照WRR权重比例分摊共享带宽,保证不同业务在系统繁忙 时按照权重分配带宽。

对于方法实施例而言,由于其基本相应于系统实施例,所以描述得比较 简单,相关之处参见系统实施例的部分说明即可。以上所描述的系统实施例 仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是 物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可 以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术 人员在不付出创造性劳动的情况下,即可以理解并实施。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的 情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所 示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽 的范围。

本文发布于:2023-04-14 00:12:53,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86825.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图