一种cpu利用率控制方法及装置的制造方法

文档序号:8942922阅读:267来源:国知局
一种cpu利用率控制方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及一种CPU利用率控制方法及装置。
【背景技术】
[0002] 在交换设备和路由设备中,分组芯片负责数据平面的工作,比如数据包的转发或 者路由,CPU(Central Processing Unit,中央处理器)负责控制平面的工作,比如协议处理 工作,协处理器也可分担一些协议处理工作。
[0003] CPU利用率是指一段时间内CPU实际处理数据的时间占实际运行时间的百分比, 是反映CPU工作状态及处理效率的指标。影响CPU利用率的因素主要有两个方面,一方面 是物理事件,比如端口连接或断开,物理温度过高或过低等;另一方面是数据包对CPU的冲 击,一般情况下,发送给CPU的数据包的速率越高,对CPU的冲击越大,CPU的利用率就越高。
[0004] 在交换设备或路由设备正常工作状态下,物理事件发生的次数远小于数据包冲击 CPU的次数,因此对进入CPU的数据包进行控制,成为控制CPU利用率高低的关键。

【发明内容】

[0005] 本发明实施例提供一种CPU利用率控制方法及装置,用以结合CPU当前的利用率, 采用抑制数据包挤占控制数据包的方式,实现对CPU利用率的有效控制。
[0006] 本发明包括:
[0007] 一种CPU利用率控制方法,包括:
[0008] 探测中央处理器CPU的利用率;
[0009] 判断所述CPU的利用率是否大于或等于第一阈值;
[0010] 若是,则根据控制数据包的优先级确定需要加大流量抑制的控制数据包缓存队 列,并提高向所述需要加大流量抑制的控制数据包缓存队列发送抑制数据包的速率;其中, 所述控制数据包中承载控制信息,通过分组芯片转发给CPU,所述分组芯片中包括N个控制 数据包缓存队列,N为大于1的整数,一个控制数据包缓存队列中的抑制数据包的优先级高 于该缓存队列中的控制数据包的优先级,一个控制数据包缓存队列中的抑制数据包在从所 在的控制数据包缓存队列出队后被丢弃,一个控制数据包缓存队列中的控制数据包被转发 给所述CPU。
[0011] 所述根据分组芯片中的控制数据包缓存队列的优先级确定需要加大流量抑制的 控制数据包缓存队列,包括:
[0012] 按照控制数据包的优先级从低到高的顺序,确定需要加大流量抑制的控制数据包 缓存队列。
[0013] 按照所缓存的控制数据包优先级从低到高的顺序,所述N个控制数据包缓存队列 包括第一缓存队列至第N缓存队列;
[0014] 所述按照控制数据包的优先级从低到高的顺序确定需要加大流量抑制的控制数 据包缓存队列,并提高向所述需要加大流量抑制的控制数据包缓存队列发送抑制数据包的 速率,包括:
[0015] 步骤201 :将i设置为1 ;
[0016] 步骤202 :判断第i缓存队列中的控制数据包的发送速率是否高于所述控制数据 包的最低保证速率,若是,则转入步骤203,否则转入步骤205 ;
[0017] 步骤203 :向第i缓存队列发送抑制数据包,向第i缓存队列发送抑制数据包的速 率等于第i缓存队列中的控制数据包的发送速率减去所述控制数据包的最低保证速率所 得到的差值;
[0018] 步骤204 :探测所述CPU的利用率,若所述CPU的利用率大于或等于所述第一阈 值,则转入步骤205 ;
[0019] 步骤205:将i递增1;
[0020] 步骤206 :若i彡N,则转入步骤202。
[0021] 所述步骤206中,若i>N,则转入步骤207 ;
[0022] 步骤207 :将i设置为1 ;
[0023] 步骤208 :增加向第i缓存队列发送抑制数据包的速率,向第i缓存队列发送抑制 数据包增加的速率等于第i缓存队列中的控制数据包的发送速率;
[0024] 步骤209 :探测所述CPU的利用率,若所述CPU的利用率大于或等于所述第一阈 值,则转入步骤210 ;
[0025] 步骤210:将i递增1;
[0026] 步骤211 :若i < N,则转入步骤208。
[0027] 所述步骤211中,若i>N,则发送用于指示CPU利用率高的告警指示。
[0028] 若所述CPU的利用率小于第二阈值,则根据控制数据包的优先级确定需要降低流 量抑制的控制数据包缓存队列,并降低向所述需要降低流量抑制的控制数据包缓存队列发 送抑制数据包的速率;其中,所述第二阈值小于或等于所述第一阈值。
[0029] 所述根据控制数据包的优先级确定需要降低流量抑制的控制数据包缓存队列,包 括:
[0030] 按照控制数据包的优先级从高到低的顺序,确定需要降低流量抑制的控制数据包 缓存队列。
[0031 ] 所述N个缓存队列的优先级彼此各不相同,按照优先级从低到高的顺序,所述N个 缓存队列包括第一缓存队列至第N缓存队列;
[0032] 所述按照所述分组芯片中的缓存队列的优先级从高到低的顺序确定需要降低流 量抑制的缓存队列,并降低向所述需要降低流量抑制的缓存队列发送抑制数据包的速率, 包括:
[0033] 步骤301 :将i设置为N ;
[0034] 步骤302 :判断第i缓存队列中的控制数据包的发送速率是否低于所述控制数据 包的最低保证速率,若是,则转入步骤303,否则转入步骤305 ;
[0035] 步骤303 :按照设定步长降低向第i缓存队列发送抑制数据包的速率,转入步骤 304 ;
[0036] 步骤304 :探测所述CPU的利用率,若所述CPU的利用率小于或等于所述第二阈 值,则转入步骤302 ;
[0037] 步骤305 :将i递减I ;
[0038] 步骤306 :若i彡1,则转入步骤302。
[0039] 所述步骤306中,若i〈l,则转入步骤307 ;
[0040] 步骤307 :将i设置为N ;
[0041] 步骤308 :判断第i缓存队列发送抑制数据包的速率是否大于零,若是,则转入步 骤309,否则转入步骤311 ;
[0042] 步骤309 :按照设定步长降低向第i缓存队列发送抑制数据包;
[0043] 步骤310 :探测所述CPU的利用率,若所述CPU的利用率小于或等于所述第二阈 值,则转入步骤311 ;
[0044] 步骤311:将i递减1;
[0045] 步骤312 :若i彡1,则转入步骤308。
[0046] 所述第i缓存队列中的控制数据包的发送速率为:
[0047] Rf1= CIR1-Df1-Hf1
[0048] 其中,Rf1为第i缓存队列中的控制数据包的发送速率,CIR i为第i缓存队列中的 保证信息速率,Df1为第i缓存队列中的抑制数据包的发送速率,Hf i为第i缓存队列中的 测量数据包的接收速率;一个缓存队列中的测量数据包的优先级低于该缓存队列中的控制 数据包的优先级。
[0049] 所述探测CPU的利用率,包括:
[0050] 向所述CPU发送探测数据包,并接收所述CPU返回的所述探测数据包;
[0051] 根据所述探测数据包的发送时间和接收时间之差,得出所述探测数据包在所述 CPU中的驻留时间;
[0052] 根据所述探测数据包在所述CPU中的驻留时间查询预先设置的驻留时间与CPU利 用率的对应关系,得到所述CPU的利用率。
[0053] -种CPU利用率控制装置,包括:探测模块、判断模块和抑制模块;
[0054] 所述探测模块,用于探测中央处理器CPU的利用率;
[0055] 所述判断模块,用于判断所述CPU的利用率是否大于或等于第一阈值;
[0056] 所述抑制模块,用于当所述CPU的利用率大于或等于所述第一阈值时,根据控制 数据包的优先级确定需要加大流量抑制的控制数据包缓存队列,并提高向所述需要加大流 量抑制的控制数据包缓存队列发送抑制数据包的速率;其中,所述控制数据包中承载控制 信息,通过分组芯片转发给CPU,所述分组芯片中包括N个控制数据包缓存队列,N为大于1 的整数,一个控制数据包缓存队列中的抑制数据包的优先级高于该缓存队列中的控制数据 包的优先级,一个控制数据包缓存队列中的抑制数据包在从所在的控制数据包缓存队列出 队后被丢弃,一个控制数据包缓存队列中的控制数据包被转发给所述CPU。
[0057] 所述抑制模块还用于:按照控制数据包的优先级从低到高的顺序,确定需要加大 流量抑制的控制数据包缓存队列。
[0058] 按照所缓存的控制数据包优先级从低到高的顺序,所述N个控制数据包缓存队列 包括第一缓存队列至第N缓存队列;
[0059] 所述抑制模块具体用于执行以下步骤:
[0060] 步骤201 :将i设置为1 ;
[0061] 步骤202 :判断第i缓存队列中的控制数据包的发送速率是否高于所述控制数据 包的最低保证速率,若是,则转入步骤203,否则转入步骤205 ;
[0062] 步骤203 :向第i缓存队列发送抑制数据包,向第i缓存队列发送抑制数据包的速 率等于第i缓存队列中的控制数据包的发送速率减去所述控制数据包的最低保证速率所 得到的差值;
[0063] 步骤204 :探测所述CPU的利用率,若所述CPU的利用率大于或等于所述第一阈 值,则转入步骤205 ;
[0064] 步骤205 :将i递增1 ;
[0065] 步骤206 :若i彡N,则转入步骤202。
[0066] 所述抑制模块还用于执行以下步骤:
[0067] 所述步骤206中,若i>N,则转入步骤207 ;
[0068] 步骤207 :将i设置为1 ;
[0069] 步骤208 :增加向第i缓存队列发送抑制数据包的速率,向第i缓存队列发送抑制 数据包增加的速率等于第i缓存队列中的控制数据包的发送速率;
[0070] 步骤209 :探测所述CPU的利用率,若所述CPU的利用率大于或等于所述第一阈 值,则转入步骤210 ;
[0071] 步骤210:将i递增1;
[0072] 步骤211 :若i < N,则转入步骤208。
[0073] 所述抑制模块还用于:所述步骤211中,若i>N,则发送用于指示CPU利用率高的 告警指示。
[0074] 所述抑制模块还用于:若所述CPU的利用率小于第二阈值,则根据控制数据包的 优先级确定需要降低流量抑制的控制数据包缓存队列,并降低向所述需要降低流量抑制的 控制数据包缓存队列发送抑制数据包的速率;其中,所述第二阈值小于或等于所述第一阈 值。
[0075] 所述抑制模块还用于:按照控制数据包的优先级从高到低的顺序,确定需要降低 流量抑制的控制数据包缓存队列。
[0076] 所述N个缓存队列的优先级彼此各不相同,按照优先级从低到高的顺序,所述N个 缓存队列包括第一缓存队列至第N缓存队列;
[0077] 所述抑制模块具体用于执行以下步骤:
[0078] 步骤301 :将i设置为N ;
[0079] 步骤302 :判断第i缓存队列中的控制数据包的发送速率是否低于所述控制数据 包的最低保证速率,若是,则转入步骤303,否则转入步骤305 ;
[0080] 步骤303 :按照设定步长降低向第i缓存队列发送抑制数据包的速率,转入步骤 304 ;
[0081] 步骤304 :探测所述CP
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1