一种网络设备中CPU利用率的获取方法及装置与流程

文档序号:11949459阅读:325来源:国知局
一种网络设备中CPU利用率的获取方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种网络设备中CPU利用率的获取方法。



背景技术:

CPU利用率作为表明网络设备是否繁忙的一个指标参数,在网络设备出现问题或对网络设备进行评估时,具有十分重要的意义。

然而,现有技术中,缺少能有效地获取网络设备中CPU利用率的方法。例如,对于基于LINUX操作系统的设备而言,CPU利用率通常使用top命令或者读取进程的proc文件的方式来获取。但是对于基于LINUX的网络设备而言,由于其执行的程序比较特殊,使用上述常见的方法不能准确、有效地获取CPU的利用率。

因此,如何提出一种方法,可准确、有效地获取网络设备中的CPU利用率,成为亟待解决的问题。



技术实现要素:

针对现有技术中的缺陷,本发明实施例提供一种网络设备中CPU利用率的获取方法,包括:

获取在预设时间段内CPU执行完整的工作循环的循环次数,以及在所述循环次数内、在报文处理流程中未接收到报文的空转次数;其中,所述工作循环包括所述非报文处理流程和所述报文处理流程;

获取所述非报文处理流程对应的第一权重值和所述报文处理流程对应的第二权重值;所述第一权重值与所述第二权重值之和为1;

根据所述循环次数、所述空转次数、所述第一权重值和所述第二权重值,获取CPU利用率。

本发明实施例提供的网络设备中CPU利用率的获取方法,由于获取到了完整的工作循环的循环次数,以及在报文处理流程中未接收到报文的空转次数,因此针对了网络设备中CPU主要用于报文处理的特点,且第一权重和第二权重的获取能使最终获取到的CPU利用率具有更佳的实际参考价值。因此,本发明实施例提供的CPU利用率获取方法,可准确并有效地获取到网络设备中CPU的利用率。

另一方面,本发明实施例提供一种网络设备中CPU利用率的获取装置,包括:

第一获取单元,用于获取在预设时间段内CPU执行完整的工作循环的循环次数,以及在所述循环次数内、在报文处理流程中未接收到报文的空转次数;其中,所述工作循环包括所述非报文处理流程和所述报文处理流程;

第二获取单元,用于获取所述非报文处理流程对应的第一权重值和所述报文处理流程对应的第二权重值;所述第一权重值与所述第二权重值之和为1;

第三获取单元,用于根据所述循环次数、所述空转次数、所述第一权重值和所述第二权重值,获取CPU利用率。

本发明实施例提供的网络设备中CPU利用率的获取装置,由于获取到了完整的工作循环的循环次数,以及在报文处理流程中未接收到报文的空转次数,因此针对了网络设备中CPU主要用于报文处理的特点,且第一权重和第二权重的获取能使最终获取到的CPU利用率具有更佳的实际参考价值。因此,本发明实施例提供的CPU利用率获取装置,可准确并有效地获取到网络设备中CPU的利用率。

附图说明

图1为本发明的网络设备中CPU利用率的获取方法实施例的流程示意图;

图2为本发明的网络设备中CPU利用率的获取装置实施例的结构示意图。

具体实施方式

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

参看图1,本实施例公开一种网络设备中CPU利用率的获取方法,包括:

S1、获取在预设时间段内CPU执行完整的工作循环的循环次数,以及在所述循环次数内、在报文处理流程中未接收到报文的空转次数;其中,所述工作循环包括所述非报文处理流程和所述报文处理流程;

具体地,可通过例如设置计数器的方式获取在预设时间段内CPU执行完整的工作循环的循环次数;可通过例如设置回执的方式获取在所述循环次数内、在报文处理流程中未接收到报文的空转次数;所述空转指网络设备在一个工作循环中,未接收到报文的情况。其中,为保证获取到的数据尽可能精确地反应出CPU即时的利用率,所述时间段可设置为较短的时间段,例如2s。

一般地,网络设备会循环地以执行线程(或进程)的方式从网卡接收报文,同时所述线程还会进行除接收报文之外的操作,基于此,可将整个线程的工作分为两部分:其他工作和报文处理。因此,所述工作循环包括所述非报文处理流程和所述报文处理流程。

S2、获取所述非报文处理流程对应的第一权重值和所述报文处理流程对应的第二权重值;所述第一权重值与所述第二权重值之和为1;

可根据网络设备在某一时段进行报文处理的繁忙程度,获取所述非报文处理流程对应的第一权重值和所述报文处理流程对应的第二权重值。一般地,获取的所述非报文处理流程的第一权重值可为0.2,获取的所述报文处理流程对应的第二权重值可为0.8,若在某一时段,服务器进行了较往常更多的报文处理,则对应地,获取的第二权重值可增加至例如0.85,相应地,获取的所述第一权重值可调整为0.15。其中,所述第一权重值与所述第二权重值之和为1。

S3、根据所述循环次数、所述空转次数、所述第一权重值和所述第二权重值,获取CPU利用率。

在获取到所述循环次数、所述空转次数、所述第一权重值和所述第二权重值后,则可通过对这些数据进行处理,获取CPU利用率。

本发明实施例提供的网络设备中CPU利用率的获取方法,由于获取到了完整的工作循环的循环次数,以及在报文处理流程中未接收到报文的空转次数,因此针对了网络设备中CPU主要用于报文处理的特点,且第一权重和第二权重的获取能使最终获取到的CPU利用率具有更佳的实际参考价值。因此,本发明实施例提供的CPU利用率获取方法,可准确并有效地获取到网络设备中CPU的利用率。

所述根据所述循环次数、所述空转次数、所述第一权重值和所述第二权重值,获取CPU利用率包括:

应用第一公式计算CPU利用率;所述第一公式为:

CPU利用率=weight_1+weight_2×(1-空转次数/循环次数),其中,weight_1为所述第一权重值,weight_2为所述第二权重值。

例如,在2s内,获取到循环次数为50、空转次数为10、第一权重值为0.2,第二权重值为0.8,则CPU利用率=0.2+0.8×(1-10/50)=0.84。

通过第一公式的计算,可实现CPU利用率的量化,从而能直观地获知CPU实际的利用情况。

优选地,还可获取CPU在所述预设时间段内、在所述非报文处理流程中实际处理的任务的第一个数handle,以及在非报文处理流程中CPU要处理的所有任务的第二个数total,并根据所述第一个数和第二个数,以及修正系数,获取修正值。

具体地,可通过设置计数器的方式,获取CPU在所述预设时间段内、在所述非报文处理流程中实际处理的任务的第一个数handle;可通过调用任务清单并设置计数器的方式,获取在非报文处理流程中CPU要处理的所有任务的第二个数total。例如,CPU需要执行两个定时器A和B,则第二个数total为2,而在预设时间段内例如2S内,CPU仅执行了定时器A,则第一个数handle为1。

所述修正系数取值范围为[0,0.3],所述修正值=修正系数×handle/total。例如,修正系数a=0.3,handle=1,total=2,则修正值value=0.3×1/2=0.15。

相应地,所述根据所述循环次数、所述空转次数、所述第一权重值和所述第二权重值,获取CPU利用率可包括:根据所述循环次数、所述空转次数、所述第一权重值、所述第二权重值和所述修正值,获取CPU利用率。

具体地,所述根据所述循环次数、所述空转次数、所述第一权重值、所述第二权重值和所述修正值,获取CPU利用率包括:

应用第二公式计算CPU利用率;所述第二公式为:

CPU利用率=(weight_1+value)+(weight_2-value)×(1-空转次数/循环次数)。

例如,在2s内,获取到循环次数为50、空转次数为10、第一权重值为0.2,第二权重值为0.8,修正值为0.15,则CPU利用率=(0.2+0.15)+(0.8-0.15)×(1-10/50)=0.87。

由于在该优选实施例中,引入了修正值,所述修正值可根据实际情况对第一权重值和第二权重值进行适当的修正,从而进一步提高了量化后的CPU利用率的精确性。

参看图2,本实施例公开一种网络设备中CPU利用率的获取装置,包括:第一获取单元1、第二获取单元2以及第三获取单元3。

具体地,所述第一获取单元1用于获取在预设时间段内CPU执行完整的工作循环的循环次数,以及在所述循环次数内、在报文处理流程中未接收到报文的空转次数;其中,所述工作循环包括所述非报文处理流程和所述报文处理流程;第二获取单元2用于获取所述非报文处理流程对应的第一权重值和所述报文处理流程对应的第二权重值;所述第一权重值与所述第二权重值之和为1;第三获取单元3用于根据所述循环次数、所述空转次数、所述第一权重值和所述第二权重值,获取CPU利用率。

其中,获取单元2可根据网络设备在某一时段进行报文处理的繁忙程度,获取所述非报文处理流程对应的第一权重值和所述报文处理流程对应的第二权重值。一般地,获取的所述非报文处理流程的第一权重值可为0.2,获取的所述报文处理流程对应的第二权重值可为0.8,若在某一时段,服务器进行了较往常更多的报文处理,则对应地,获取的第二权重值可增加至例如0.85,相应地,获取的所述第一权重值可调整为0.15。其中,所述第一权重值与所述第二权重值之和为1。

本发明实施例提供的网络设备中CPU利用率的获取装置,由于获取到了完整的工作循环的循环次数,以及在报文处理流程中未接收到报文的空转次数,因此针对了网络设备中CPU主要用于报文处理的特点,且第一权重和第二权重的获取能使最终获取到的CPU利用率具有更佳的实际参考价值。因此,本发明实施例提供的CPU利用率获取装置,可准确并有效地获取到网络设备中CPU的利用率。

具体地,获取单元3用于应用第一公式计算CPU利用率,所述第一公式为:

CPU利用率=weight_1+weight_2×(1-空转次数/循环次数),其中,weight_1为所述第一权重值,weight_2为所述第一权重值。

例如,在2s内,获取单元1获取到循环次数为50、空转次数为10,获取单元2获取到第一权重值为0.2,第二权重值为0.8,则CPU利用率=0.2+0.8×(1-10/50)=0.84。

通过第一公式的计算,可实现CPU利用率的量化,从而能直观地获知CPU实际的利用情况。

优选地,本发明实施例提供的装置还可包括获取单元4,用于获取CPU在所述预设时间段内、在所述非报文处理流程中实际处理的任务的第一个数handle,以及在非报文处理流程中CPU要处理的所有任务的第二个数total,并根据所述第一个数和第二个数,以及修正系数,获取修正值。

例如,CPU需要执行两个定时器A和B,则第二个数total为2,而在预设时间段内例如2S内,CPU仅执行了定时器A,则第一个数handle为1。

所述修正系数取值范围为[0,0.3],所述修正值=修正系数×handle/total。例如,修正系数a=0.3,handle=1,total=2,则修正值value=0.3×1/2=0.15。

相应地,所述第三获取单元还用于:

根据所述循环次数、所述空转次数、所述第一权重值、所述第二权重值和所述修正值,获取CPU利用率。

具体地,所述第三获取单元用于应用第二公式计算CPU利用率;所述第二公式为:

CPU利用率=(weight_1+value)+(weight_2-value)×(1-空转次数/循环次数)。

例如,在2s内,获取到循环次数为50、空转次数为10、第一权重值为0.2,第二权重值为0.8,修正值为0.15,则CPU利用率=(0.2+0.15)+(0.8-0.15)×(1-10/50)=0.87。

由于在该优选实施例中,获取单元4获取到修正值,所述修正值可根据实际情况对第一权重值和第二权重值进行适当的修正,从而进一步提高了量化后的CPU利用率的精确性。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1