一种系统资源使用率的统计方法和系统与流程

文档序号:13482851阅读:565来源:国知局

本申请涉及计算机技术领域,尤其涉及一种系统资源使用率的统计方法和系统。



背景技术:

在服务器资源管理方面,经常需要对系统的cpu资源或者内存资源的使用情况进行统计,根据统计结果,对系统资源作出相应的调整,从而更好地监控、管理和合理利用系统资源。

目前,比较常见的系统资源统计方法是采集系统资源使用情况的瞬时值,即采集某个时刻的系统资源使用率,由已使用的系统资源量与系统资源总量的比值计算得出,以该系统资源使用率来评价系统资源使用情况。瞬时值一般为一个百分数,获取到系统资源使用情况的瞬时值后,能够根据该瞬时值绘制出一连续的曲线,用户能够掌握每个时刻系统资源的使用情况。以统计系统cpu资源使用情况为例,目前的统计方法中,需要采集系统cpu资源使用情况的瞬时值,也就是某个时刻系统cpu的使用率,根据系统cpu的使用率来指导系统对cpu资源的分配。

一些系统优化软件或者系统管理软件对系统进行优化之前,需要先对系统资源使用情况进行统计,以系统资源使用率作为是否进行优化或管理操作的依据。具体地,当系统资源使用率大于某一阈值时,系统优化软件或系统管理软件进行优化或管理操作,从而大大提高系统性能;当系统资源使用率小于这一阈值时,系统优化软件或系统管理软件不进行优化或管理操作。

然而,目前的统计方法中,由于采集的是系统资源使用情况的瞬时值,前一秒钟系统资源使用率很高,下一秒钟系统资源使用率可能为零,瞬时值的波动比较大。因此,当某一时刻系统资源使用率大于某一阈值时,系统优化软件或系统管理软件进行优化或管理操作,如果紧接着后一秒钟系统资源使用率小于某一阈值,系统优化软件或系统管理软件就停止优化或管理操作,这就导致优化操作或者管理操作经常地被执行和被还原,系统优化或管理操作本身的性能损耗大大增加,不利于系统资源的合理利用,这种统计方法所得出的系统资源使用率并不能准确地指导系统优化或系统管理。而且这种情况下,系统的优化或管理操作的有效时间变短,使得系统优化或者系统管理的效率大大降低。



技术实现要素:

为克服现有统计方法中系统资源使用率的瞬时值波动较大、不利于系统资源的合理利用、不能准确指导系统优化或系统管理以及使系统优化或系统管理效率大大降低的情况,本申请提供一种系统资源使用率的统计方法和系统。

一种系统资源使用率的统计方法,包括如下步骤:

s1:每隔一固定时间采集系统资源使用率的一个瞬时值;

s2:根据所述瞬时值建立系统资源使用率数组,所述系统资源使用率数组中包括n个连续采集时刻的数值,且n≥3;

s3:保持系统资源使用率数组中数值的个数不变,每增加一个瞬时值的同时,去掉系统资源使用率数组中的第一个数值;

s4:根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用平均值法计算当前系统资源使用率的计算值;

s5:所述当前系统资源使用率的计算值为当前系统资源使用率;

s6:在系统资源使用率数组中增加一个瞬时值,并重复步骤s3至s5计算下一时刻的系统资源使用率。

可选地,所述步骤s6具体包括:

s61:将当前系统资源使用率的计算值作为系统资源使用率的一个瞬时值放入系统资源使用率数组中;

s62:重复步骤s3至s5,计算下一时刻的系统资源使用率。

可选地,所述步骤s6具体包括:

s63:采集当前系统资源使用率的一个瞬时值并放入系统资源使用率数组中;

s64:重复步骤s3至s5,计算下一时刻的系统资源使用率。

可选地,所述系统资源使用率为cpu资源使用率、内存资源使用率或i/o资源使用率。

可选地,所述系统资源使用率数组中数值的数量n为5≤n≤10。

一种系统资源使用率的统计系统,所述系统包括:

瞬时值采集模块,用于每隔一固定时间采集系统资源使用率的一个瞬时值;

数组建立模块,用于根据所述瞬时值建立系统资源使用率数组,所述系统资源使用率数组中包括n个连续采集时刻的数值,且n≥3;

数组保持模块,用于保持系统资源使用率数组中数值的个数不变,每增加一个瞬时值的同时,去掉系统资源使用率数组中的第一个数值;

系统资源使用率计算模块,用于根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用平均值法计算当前系统资源使用率的计算值,并将所述当前系统资源使用率的计算值作为当前系统资源使用率。

可选地,所述统计系统还包括第一系统资源使用率计算模块,所述第一系统资源使用率计算模块用于将当前系统资源使用率的计算值作为系统资源使用率的一个瞬时值放入系统资源使用率数组中。

可选地,所述统计系统还包括第二系统资源使用率计算模块,所述第二系统资源使用率计算模块用于采集当前系统资源使用率的一个瞬时值并放入系统资源使用率数组中。

本申请的实施例提供的技术方案可以包括以下有益效果:

一种系统资源使用率的统计方法,通过每隔一固定时间采集系统资源使用率的一个瞬时值,其次,根据n个连续采集时刻的数值,建立系统资源使用率数组,保持系统资源使用率数组中数值的个数不变,每增加一个瞬时值的同时,去掉数组中的第一个数值,然后,根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用平均值法计算当前系统资源使用率的计算值,该计算值为当前系统资源使用率,最后,在系统资源使用率数组中增加一个瞬时值,并重复以上步骤计算下一时刻的系统资源使用率。本申请中的统计方法,采用数组的方式,引入历史数值,利用平均值法计算得出系统资源使用率的计算值,并以系统资源使用率的计算值作为当前系统资源使用率,能够有效避免系统资源使用率瞬时值的波动对系统资源使用率统计产生的不利影响,从而能够更加准确地指导系统资源的优化和管理操作。

一种系统资源使用率的统计系统,主要包括瞬时值采集模块、数组建立模块、数组保持模块以及系统资源使用率计算模块四个部分。首先由瞬时值采集模块每隔一固定时间采集系统资源使用率的一个瞬时值,然后,数组建立模块选择n个连续采集时刻的数值,建立系统资源使用率数组,数组保持模块用于保持瞬时值数组中数值的数量不变,最后,系统资源使用率计算模块根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用平均值法计算当前系统资源使用率的计算值,并将所述当前系统资源使用率的计算值作为当前系统资源使用率。本申请中的系统资源使用率统计系统,结构简单,采用组的方式,引入历史数值求取平均值,能够避免系统资源使用率瞬时值的波动对系统资源统计情况的影响,系统优化软件或者系统管理软件采用此统计系统,能够有效避免优化操作或者管理操作经常地被执行和被还原,从而降低系统优化或者系统管理操作本身的性能损耗,有利于系统资源的合理利用。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

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

图1为本申请实施例提供的一种系统资源使用率的统计方法的流程示意图;

图2为本申请实施例提供的另一种系统资源使用率的统计方法的流程示意图;

图3为本申请实施例提高的又一种系统资源使用率的统计方法的流程示意图;

图4为本申请实施例提供的一种系统资源使用率的统计系统的结构示意图。

符号表示:1-瞬时值采集模块、2-数组建立模块、3-数组保持模块、4-系统资源使用率计算模块。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本申请进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。此外,本申请可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本申请省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本申请。

在计算机领域,对系统资源使用情况进行统计是一种很常见的需求,通常,一些系统资源优化软件或者系统资源管理软件需要首先对系统资源使用情况进行统计,然后根据统计结果再对系统进行监控、优化或者管理操作,而系统资源使用情况最常见的统计参数就是系统资源使用率。例如:部分优化软件会在系统的cpu资源使用率大于或等于50%时,进行某些优化操作,当系统的cpu资源使用率小于50%时不进行优化操作,如果系统的cpu资源使用率小于50%时继续进行优化操作会给整个系统带来不良效果。本发明是基于现有技术中所采集的系统资源使用率瞬时值波动较大,不能很好地展示系统资源使用情况而提出的。

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

实施例一

参见图1,图1是本申请实施例提供的一种系统资源使用率的统计方法的流程示意图。由图1可知,本申请实施例中年系统资源使用率的统计方法,主要包括如下步骤:

s1:每隔一固定时间采集系统资源使用率的一个瞬时值。

本申请中的某一时刻的系统资源使用率,是在系统资源使用率瞬时值的基础上进行计算而得出的系统资源使用率的计算值,以此系统资源使用率的计算值作为当前时刻的系统资源使用率,然后根据当前时刻的系统资源使用率对系统进行优化、管理等进一步的操作。

本申请实施例中,系统资源使用率的瞬时值可以通过系统自带的命令接口进行采集,例如linux系统中可以采用top接口来采集系统cpu资源使用率。

s2:根据所述瞬时值建立系统资源使用率数组,系统资源使用率数组中包括n个连续采集时刻的数值,且n≥3。

本申请实施例中,系统资源使用率数组长度至少为3,也就是系统资源使用率数组中数值的个数至少为3,这是为了确保后续平均值法的有效性,如果数值的个数太少,采用本实施例的统计方法求取平均值就没有意义了。

本申请实施例中,系统资源使用率数组中数值的个数n优选为5≤n≤10,也就是系统资源使用率数组的长度n为5-10中任意一个自然数,在5≤n≤10的范围内,n取值越大,某个时刻系统资源使用率的瞬时值对系统资源使用率的计算值的影响越小。系统资源使用率数组中数值n的取值范围是发明人根据大量的统计实验得出的,针对cpu资源使用率的统计方法来说,尤其当n取值为5时,既能满足系统资源使用率的准确统计,又能简化系统资源使用率的计算值公式,有利于降低统计方法本身所占用的系统资源。

s3:保持系统资源使用率数组中数值的个数不变,每增加一个瞬时值的同时,去掉系统资源使用率数组中的第一个数值。

保持系统资源使用率数组中数值的数量不变,也就是保持系统资源使用率数组的长度不变,能够确保系统资源使用率的统计标准保持一致,有利于更加准确地反应系统系统使用率的变化情况。

s4:根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用平均值法计算当前系统资源使用率的计算值。

具体地,首先确定当前时刻,然后,根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用公式计算当前时刻系统资源使用率的计算值,其中,n为系统资源使用率数组中数值的个数,xn是当前时刻系统资源使用率的瞬时值,xn′为当前时刻系统资源使用率的计算值,n为自然数。

s5:所述当前系统资源使用率的计算值为当前系统资源使用率。

例如:从某一时刻开始,以此时刻作为起点0时刻,采集第一个瞬时值,然后每隔固定时间采集一次瞬时值,依次采集第2个……第n个,利用n个瞬时值建立第一个长度为n的系统资源使用率数组,该数组中n个数值为系统资源使用率的瞬时值,第n-1个固定时刻采集到第n个系统资源使用率的瞬时值为xn,根据公式计算得出,第n个系统资源使用率的计算值为因此数组中第n个数值为

至此,获取到当前系统资源使用率,然后执行步骤s6:在系统资源使用率数组中增加一个瞬时值,并重复步骤s3至s5计算下一时刻的系统资源使用率。

由以上步骤可以看出,本申请实施例中的统计方法采用数组的方式,建立长度为n的系统资源使用率数组,并对数组中第n个系统资源使用率的瞬时值和上一时刻数组中n-1个数值求取平均值,并以此平均值作为当前系统资源使用率,能够避免前一时刻系统资源使用率很高,而后一时刻系统资源使用率很低甚至为0的情况,这种统计方法,通过数组引入历史值,能够有效平滑波动对系统资源统计的影响,因此,本申请实施例中的统计方法所获取的系统资源使用率更加平滑,从而能够更加准确地指导系统优化或系统管理。

本申请实施例中系统资源使用率的统计方法可以适用于cpu资源使用率的统计、也可以适用于内存资源使用率的统计或者i/0资源使用率的统计。

本实施例的系统资源使用率的统计方法中,固定时间的选取可以根据具体的统计精度来确定,一般情况为了方便统计,可以取固定时间为1秒。除了1秒外,也可以根据优化或者管理精度的需求取其他长度的时间段,只要确保每个数组中n个数值的取值间隔相同即可。

实施例二

在图1所示实施例的基础之上参见图2,图2为本申请实施例提供的另一种系统资源使用率的统计方法的流程示意图。由图2可知,本实施例是图1所示实施例中步骤6的一种实施方式,具体包括如下步骤:

s61:将当前系统资源使用率的计算值作为系统资源使用率的一个瞬时值放入系统资源使用率数组中;

s62:重复步骤s3至s5,计算下一时刻的系统资源使用率。

具体地,本实施例中除了作为计数起点的零时刻的系统资源使用率数组中的数值全部为瞬时值外,在建立新的系统资源使用率数组时,每次都把当前系统资源使用率的计算值放入系统资源使用率数组中,然后,重复步骤s3-s5,计算下一时刻的系统资源使用率。计算时,根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,采用平均值法计算当前系统资源使用率的计算值。其中,上一时刻系统资源使用率数组中的后n-1个数值中至少包括一个系统资源使用率的计算值。根据这种统计方法,从计数起点零时刻开始,n个固定时间之后,系统资源使用率数组中的数值全部为系统资源使用率的计算值。

例如:采用公式来计算系统资源使用率的计算值,其中,m为选定的时刻,n为系统资源使用率数组中数值的个数,xm+n是m时刻系统资源使用率的瞬时值,xm+n′为m时刻系统资源使用率的计算值。

m=0时,建立第一个长度为n的系统资源使用率数组,该数组中前n个数值均为系统资源使用率的瞬时值,取固定时间为1s秒,m=0的下一个时刻为m=1。当m=1时,建立第二个长度为n的瞬时值数组,该数组中前n-1个数值依次为x2、x3...xn-1、xn,m=1时刻,第n个系统资源使用率的瞬时值为x1+n,根据公式计算得出,第n个系统资源使用率的计算值为以此类推,可以计算出任意时刻m时长度为n的数值中第n个数值,即系统资源使用率的计算值,该系统资源使用率的计算值即为当前系统资源使用率,也就是m时刻的系统资源使用率。

该实施例未详细描述的部分可参照图1所示的实施例一,两者之间可以互相参照,在此不再赘述。

实施例三

在图1和图2所示实施例的基础之上参见图3,图3为本申请实施例提供的又一种系统资源使用率的统计方法的流程示意图。由图3可知,本实施例是图1所示实施例中步骤6的另一种实施方式,具体包括如下步骤:

s63:采集当前系统资源使用率的一个瞬时值并放入系统资源使用率数组中;

s64:重复步骤s3至s5,计算下一时刻的系统资源使用率。

本实施例与图2所示实施例的区别在于步骤s63,本实施例中采集当前系统资源使用率的一个瞬时值并放入系统资源使用率数组中,即每个系统资源使用率数组中的数值都是瞬时值。计算时,根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,采用平均值法计算当前系统资源使用率的计算值。其中,上一时刻系统资源使用率数组中的后n-1个数值均为瞬时值。

该实施例未详细描述的部分可参照图1所示的实施例一和图2所示的实施例二,三者之间可以互相参照,在此不再赘述。

下面以linux系统下使用python语言实现cpu资源使用率的统计为例,来详细描述本申请中统计方法的具体步骤。python是一种面向对象、解释型计算机程序设计语言,常被称为胶水语言,python中的os模块能够提供一个统一的操作系统接口函数,从而使python在不同操作平台中的特征函数间自动切换,进而能够使python很轻松地把用其他语言制作的各种模块(尤其是c/c++)轻松地联结在一起。由于python是一种不受局限、跨平台的开源编程语言,其应用非常广泛。

第一步,定义一个方法get_cpu_usage。具体地,通过python的os模块,调用linux系统的top命令,可以采集当前系统cpu资源使用情况;具体python编程语言可以为:

importos

result=os.popen(‘top-b-n4-d.2|grep″cpu″|tail-n1|awk

’{print$2+$4}”)

result=round(result.read().strip(),2)

第二步,创建一个数组cpu_useage;

cpu_usage=[]

第三步,从0秒开始采集第一个瞬时值,每隔1秒调用第一步中的get_cpu_use方法采集一次系统cpu资源使用情况;

第四步,开始采集后,在前5秒的时间内,将每次所采集的瞬时值依次放入第二步中的cpu_usege中,此时瞬时值数组中共存放有5个系统cpu资源使用情况的瞬时值;

whilelen(cpu_usage)<5:

result=get_cpu_useage()

cpu_usage.append(result)

第五步,从第5次瞬时值采集开始,取瞬时值数组中前4次cpu资源使用率的瞬时值与当前cpu资源使用率的瞬时值相加,也就是使前5次cpu资源使用率的瞬时值相加,将cpu资源使用率的瞬时值相加得到的和除以5作为瞬时值数组中的最后一个数值;

whiletrue:

sum=0

foriincpu_usage[:4]:

sum+=i

sum+=get_cpu_usage()

cpu_usage=cpu_usage[1:]

cpu_usage.append(round(sum/5,2))

第六步,将瞬时值数组中所有数值向前移动一位,重复第五步中的操作;

第七步,某一时刻的系统cpu资源使用情况为cpu_usage中最后一个值,即

cpu_usage[4];

defget_cpu_usage():

returncpu_usage[4]

参见图4,图4为本申请实施例提供的一种系统资源使用率的统计系统的结构示意图。由图4可知,本申请实施例所提供的系统资源使用率的统计系统,主要包括瞬时值采集模块1、数组建立模块2、数组保持模块3以及系统资源使用率计算模块4四个部分。其中瞬时值采集模块1用于每隔一固定时间采集系统资源使用率的一个瞬时值;数组建立模块2用于根据所述瞬时值建立系统资源使用率数组,所述系统资源使用率数组中包括n个连续采集时刻的数值,且n≥3;数组保持模块3用于保持系统资源使用率数组中数值的个数不变,每增加一个瞬时值的同时,去掉系统资源使用率数组中的第一个数值;系统资源使用率计算模块4用于根据当前时刻所增加的瞬时值和上一时刻系统资源使用率数组中的后n-1个数值,利用平均值法计算当前系统资源使用率的计算值,并将所述当前系统资源使用率的计算值作为当前系统资源使用率。

进一步地,根据一种平均值法,本申请实施例中的统计系统还可以包括第一系统资源使用率计算模块,第一系统资源使用率计算模块用于将当前系统资源使用率的计算值作为系统资源使用率的一个瞬时值放入系统资源使用率数组中。

或者,根据另一种平均值法,本申请实施例中的统计系统还可以包括第二系统资源使用率计算模块,第二系统资源使用率计算模块用于采集当前系统资源使用率的一个瞬时值并放入系统资源使用率数组中。

当然,同一个系统资源使用率的统计系统中,第一系统资源使用率计算模块和第二系统资源使用率计算模块只可选其一。

本申请实施例所提供的系统资源使用率的统计系统在统计方法中已经详细描述,在此不再赘述。

以上所述只是本申请的可选实施方式,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本申请的保护范围。

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