一种cpu利用率控制方法及装置的制造方法
【技术领域】
[0001] 本发明设及计算机通信技术领域,尤其设及一种CPU利用率控制方法及装置。
【背景技术】
[0002] 在交换设备和路由设备中,分组忍片负责数据平面的工作,比如数据包的转发或 者路由,CPU(Central Processing化it,中央处理器)负责控制平面的工作,比如协议处理 工作,协处理器也可分担一些协议处理工作。
[0003] CPU利用率是指一段时间内CPU实际处理数据的时间占实际运行时间的百分比, 是反映CPU工作状态及处理效率的指标。影响CPU利用率的因素主要有两个方面,一方面 是物理事件,比如端口连接或断开,物理溫度过高或过低等;另一方面是数据包对CPU的冲 击,一般情况下,发送给CPU的数据包的速率越高,对CPU的冲击越大,CPU的利用率就越高。
[0004] 在交换设备或路由设备正常工作状态下,物理事件发生的次数远小于数据包冲击 CPU的次数,因此对进入CPU的数据包进行控制,成为控制CPU利用率高低的关键。
【发明内容】
阳0化]本发明实施例提供一种CPU利用率控制方法及装置,用W结合CPU当前的利用率, 采用抑制数据包挤占控制数据包的方式,实现对CPU利用率的有效控制。
[0006] 本申请实施例提供一种CPU利用率控制方法,该方法包括:
[0007] 探测中央处理器CPU的利用率;
[0008] 若所述CPU的利用率大于或等于第一阔值,则判断向分组忍片中的第一缓存队列 发送抑制数据包的发送速率是否小于所述第一缓存队列的最低保证速率,其中,所述第一 缓存队列用于缓存发送给所述CPU的所有控制数据包,所述第一缓存队列中的抑制数据包 在从所述缓存队列出队后被丢弃;
[0009]若是,则提高向所述第一缓存队列发送抑制数据包的发送速率;其中,所述第一缓 存队列中的抑制数据包的优先级高于所述第一缓存队列中的控制数据包的优先级。
[0010] 本申请是实施例提供了一种CPU利用率控制装置,该装置包括: W11] 探测单元,用于探测中央处理器CPU的利用率;
[0012] 判断单元,用于判断CPU的利用率是否大于或等于第一阔值,W及判断向分组忍 片中的第一缓存队列发送抑制数据包的发送速率是否小于所述第一缓存队列的最低保证 速率,其中,所述第一缓存队列用于缓存发送给所述CPU的所有控制数据包,所述第一缓存 队列中的抑制数据包在从所述缓存队列出队后被丢弃;
[0013] 抑制单元,用于当CPU的利用率大于或等于第一阔值,且向分组忍片中的第一缓 存队列发送抑制数据包的发送速率小于所述第一缓存队列的最低保证速率,则提高向所述 第一缓存队列发送抑制数据包的发送速率;其中,所述第一缓存队列中的抑制数据包的优 先级高于所述第一缓存队列中的控制数据包的优先级。
[0014] 本发明实施例中,通过控制控制数据包进入CPU的速率来达到降低CPU利用率的 效果,其中,首先探测中央处理器CPU的利用率,若CPU的利用率大于或等于第一阔值,则判 断向分组忍片中的第一缓存队列发送抑制数据包的发送速率是否小于第一缓存队列的最 低保证速率,若是,则提高向第一缓存队列发送抑制数据包的发送速率,其中,第一缓存队 列用于缓存发送给所述CPU的所有控制数据包。由于第一缓存队列中的抑制数据包在从该 缓存队列出队后被丢弃,W及第一缓存队列中的抑制数据包的优先级高于第一缓存队列中 的控制数据包的优先级,从而形成抑制数据包对控制数据包进行挤占,因此提高向第一缓 存队列内抑制数据包发送可W降低第一缓存队列内的控制数据包的发送速率,从而实现了 通过控制进入CPU的控制数据包的速率来控制CPU利用率。
【附图说明】
[0015]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可W根据运些附图获得其 他的附图。
[0016] 图1为本发明实施例适用的设备内部结构图;
[0017] 图2为本发明实施例提供的CPU利用率控制流程示意图;
[001引图3为本发明实施例提供的CPU利用率控制装置结构示意图;
[0019] 图4为本发明实施例提供的CPU利用率探测装置结构示意图;
[0020] 图5为本发明实施例中探测CPU利用率初始阶段的原理图;
[0021] 图6为本发明实施例中CPU利用率和探测数据包的驻留时间的对应关系图;
[0022] 图7为本发明实施例提供的CPU利用率控制流程示意图;
[0023] 图8为本发明实施例提供的CPU利用率控制流程示意图;
[0024] 图9为本发明实施例提供的CPU利用率探测装置结构示意图;
[0025] 图10为本发明实施例提供的CPU利用率探测装置结构示意图;
[0026] 图11为本发明实施例提供的控制CPU利用率装置的结构原理图;
[0027] 图12为本发明实施例提供的控制数据包的抑制过程的第一处理阶段W及第二处 理阶段的流程图;
[0028] 图13为本发明实施例中提供的控制数据包的扩张过程的第一处理阶段W及第二 处理阶段的流程图;
[0029] 图14为本发明实施例中限速小桶抑制原理图;
[0030] 图15为本发明实施例中限速大桶和限速小桶共同抑制原理图;
[0031] 图16为本发明实施例CPU利用率控制方法的流程图;
[0032] 图17为本发明实施例CPU利用率控制方法的抑制过程的流程图;
[0033] 图18为本发明实施例CPU利用率控制方法的扩张过程的流程图;
[0034] 图19为本发明实施例控制CPU利用率的系统示意图;
[0035] 图20为本发明实施例另一控制CPU利用率的系统示意图
【具体实施方式】
[0036]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进 一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施 例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的 所有其它实施例,都属于本发明保护的范围。
[0037]图1示例性地示出了本发明实施例适用的设备的内部结构。该设备可W是路由器 或交换机,或者其他可实现数据转发功能的设备。 阳03引如图1所示,该设备可包括:CPU101、协处理器102和分组忍片103。CPU101负责 管理和控制整个系统的正常工作,分组忍片103负责数据包的转发或路由,具体来说,业务 数据包进入分组忍片后,经分组忍片进行转发处理,被转发至相应的出端口。协处理器102 用于分担CPU的一些协议处理工作,或者用于功能的升级扩展,协处理器102可由FPGA(现 场可编程口阵列,Field-Programm油leGateArray)实现。
[0039] CPU与分组忍片之间,协处理器与分组忍片之间可分别通过数据通道实现数据交 换,控制数据包进入分组忍片后通过与CPU之间的数据通道进入CPU进行协议处理。CPU可 通过控制通道控制协处理器和分组忍片工作,协处理器和分组忍片可分别通过事件通道向 CPU101发送事件请求。其中,控制数据包中承载控制信息,与业务数据包不同,是通过分组 忍片转发给CPU,可W包括协议数据包和管理数据包。协议数据包根据协议类型的不同,可 实现不同的功能,可包括ARP(地址解析协议,AcMressResolution化otocol)消息,用W根 据IP地址获取物理地址,比如,还可W是〇SPF(开放式最短路径优先,化en化ortestPath First)消息,用于建立链路状态数据库,生成最短路径树。管理数据包可实现不同的管理功 能,可包括SNMP(简单网络管理协议,Simple化tworkManagementProtocol)消息,能够 管理网络设备,及时发现并解决网络问题W及规划网络的增长,再比如,可W是TelNet(远 程终端协议,Telecommunications化twork)消息,可实现在本地计算机上控制远程主机工 作。
[0040] 本发明实施例中,为了实现对CPU利用率的控制,在设备运行过程中,可根据CPU 当前的利用率,利用抑制数据包对控制数据包进行挤占,从而对控制数据包的发送速率进 行控制,进而实现对CPU利用率进行控制的目的。其中,本发明实施例中,控制数据包的发 送速率是指控制数据包被发送到CPU的速率。
[0041] 其中,所述抑制数据包为本发明实施例中定义的一种特殊类型的数据包,抑制数 据包可由协处理器生成并发送给分组忍片,分组忍片处理完成抑制数据包后将其丢弃或者 发送给协处理器,由协处理器将从分组忍片返回的抑制数据包丢弃。抑制数据包的优先级 高于控制数据包的优先级,从而实现对控制数据包进行挤占的目的。 阳0创实施例一
[0043] 如图2所示,本发明实施例提供的一种CPU利用率控制流程示意图,该流程可在协 处理器侧执行。 W44] 步骤201,探测CPU的利用率。
[0045] 步骤202,判断CPU的利用率是否大于或等于第一阔值。
[0046] 其中,第一阔值用来衡量CPU的利用率的程度,如果步骤201中探测出的CPU的利 用率大于或等于该阔值,则表明当前CPU的利用率较高,需要对进入CPU的控制数据包的数 量进行控制。第一阔值的取值可根据CPU的性能或者根据需要等多种因素进行设定,比如 该第一阔值可取值为80%。
[0047] 因此当CPU的利用率大于或等于第一阔值时,转发步骤203,否则转到步骤201,继 续保持探测CPU的利用率。
[0048] 步骤203,判断向分组忍片中的第一缓存队列发送抑制数据包的速率是否小于第 一缓存队列的最低保证速率。
[0049]分组忍片中的第一缓存队列用于缓存系统中控制数据包、抑制数据包。第一缓存 队列有一个最低保证速率的限制,即第一缓存队列单位时间内转发的数据包数量最多为第 一缓存队列的最低保证速率值。
[0050] 控制数据包被发送至分组忍片中的第一缓存队列后,由分组忍片转发至CPU,由 CPU根据控制数据包携带的协议内容去做相应的处理;抑制数据包由协处理器发送至分组 忍片中的第一缓存队列,然后由分组忍片转发至协处理器,由协议处理器丢弃,或者直接转 发至丢弃端口,丢弃端口将抑制数据包丢弃。
[0051] 在第一缓存队列内,抑制数据包的优先级高于控制数据包的优先级,协议分组忍 片中的第一缓存队列按优先级路由转发缓存队列内的数据包。
[0052] 因此,当按照优先级顺序,第一缓存队列会优先处理队列内的抑制数据包,而第一 缓存队列转发数据包的速率最大为第一缓存队列的最低保证速率,即单位时间内第一缓存 队列转发数据包的数量最大等于最低保证速率值,因此当第一缓存队列内的抑制数据包越 多,控制数据包被处理的就越少,进而单位时间内进入CPU的协议书包就会越少,因此CPU 利用率就会降低。
[0053] 由W上实现方式可看出,当协处理器向分组忍片中的第一缓存队列发送抑制数据 包时,可降低CPU利用率,但由于第一缓存队列转发数据包的速率上限为最低保证速率,因 此向第一缓存队列发送抑制数据包之前,首先要判断向分组忍片中的第一缓存队列发送抑 制数据包的速率是否小于第一缓存队列的最低保证速率,若是,则转到步骤204,若否,则转 到步骤201,继续保持CPU利用率的探测。
[0054] 步骤204,提高向第一缓存队列发送抑制数据包的发送速率。 阳化5] 在步骤203中,若判断向分组忍片中的第一缓存队列发送抑制数据包的速率小于 第一缓存队列的最低保证速率,即表明当前第一缓存队列还未达到转发数据包的上限,因 此还可W继续提高向第一缓存队列发送抑制数据包的速率,进一步去抑制第一缓存队列内 的控制数据包的发送速率,可进一步降低CPU利用率。
[0056] 相应地,参见图3,本发明实施例还提供一种CPU利用率控制装置,包括:
[0057] 探测单元301,用于探测中央处理器CPU的利用率;
[0058] 判断单元302,用于判断CPU的利用率是否大于或等于第一阔值,W及判断向分组 忍片中的第一缓存队列发送抑制数据包的发送速率是否小于所述第一缓存队列的最低保 证速率,其中,所述第一缓存队列用于缓存发送给所述CPU的所有控制数据包,所述第一缓 存队列中的抑制数据包在从所述缓存队列出队后被丢弃;
[0059] 抑制单元303,用于当CPU的利用率大于或等于第一阔值,且向分组忍片中的第一 缓存队列发送抑制数据包的发送速率小于所述第一缓存队列的最低保证速率,则向所述第 一缓存队列发送抑制数据包;其中,所述第一缓存队列中的抑制数据包的优先级高于所述 第一缓存队列中的控制数据包的优先级。 W60] 下面结合图3中的CPU利用率控制装置及图1中的CPU利用率控制系统架构,来 详细描述本发明实施例提供的CPU利用率控制方法。参见图4,为本发明实施例提供的一种CPU利用率控制装置图。协处理器102中分别有探测单元301,判断单元302W及抑制单元 303 ;分组忍片103中有第一缓存队列401。
[0061]第一缓存队列401,用于缓存抑制单元303发送的抑制数据包,W及系统中其它单 元发送来的控制数据包,其中,抑制数据包被转发至抑制单元303或者直接丢弃抑制数据 包,控制数据包被转发至CPU,其中,第一缓存队列中的抑制数据包的优先级高于控制数据 包,第一缓存队列按优先级顺序分别转发数据包。
[0062] 由W上CPU利用率控制装置看出,当抑制单元提高向分组忍片中的第一缓存队列 发送速率时,由于第一缓存队列中抑制数据包优先级高于控制数据包,因此,抑制单元发送 到第一缓存队列中的抑制数据包会去挤占控制数据包,因而减少了第一缓存队列转发至 CPU的控制数据包的数量,从而降低了CPU的利用率,进一步地,当由于抑制数据包的挤占, 第一缓存队列中的控制数据包的发送速率为零时,可W最大程度地降低CPU的利用率。
[0063] 下面结合图4对图2中的步骤201~2