CPU使用率的控制方法和装置制造方法及图纸

技术编号:13861998 阅读:27 留言:0更新日期:2016-10-19 09:35
本申请公开了一种CPU使用率的控制方法,包括:启动工作进程,其中,工作进程与目标CPU具有绑定关系;获取目标CPU的当前使用率和目标使用率,并获取当前使用率和目标使用率之间的误差值;根据误差值生成工作进程的工作时间;以及根据工作进程的工作时间对工作进程进行控制。该方法能够使得在CPU使用率控制时达到效果稳定、实时性高和精确性高的特点。本申请还公开了一种CPU使用率的控制装置。

【技术实现步骤摘要】

本申请涉及计算机
,尤其涉及CPU使用率的控制方法和装置
技术介绍
目前,在很多高可靠性的软件测试中,很重要的一个测试场景是软件在高压力下的性能测试。而这种高压力往往表现为CPU使用率很高。又如,在很多高可靠性系统中,需要强大的灾难处理预案和容灾保护机制来支撑,而大多数的容灾保护机制都依赖一种监控装置,这种装置能够实时监控系统状态,如CPU使用率、内存使用率等。由于当某种系统状态达到某个精确的设定值时,将会触发容灾保护机制来自动实施某一种处理预案,因此,在这种容灾机制的测试过程当中,精确模拟实时控制CPU使用率就变得十分必要。相关技术中,CPU使用率的控制方法一般通过以下步骤实现:1)启动一定数量工作线程;2)每个线程按照一定比例做一定时间的计算,拉高CPU使用率;3)如果达到期望值,就停止启动线程;4)如果没有达到期望值,则继续启动更多线程;5)重复步骤3)、步骤4)直到达到期望值。但是存在的问题是:1)对于多核心的CPU,由于上述方法启动大量线程的做法会使CPU在线程间频繁切换,程序本身会造成过多的CPU占用,导致CPU使用率不稳定;2)需要通过线程的启动和销毁来控制CPU使用率,由于较多的线程启动和销毁都需要一定时间,会导致CPU的调节实时性很差,滞后严重;3)无法消除系统中的静态误差,会导致CPU使用率距离期望值有一定误差,且这一误差与具体环境密切相关,无法预测。
技术实现思路
本申请的目的旨在至少在一定程度上解决上述的技术问题之一。为此,本申请的第一个目的在于提出一种CPU使用率的控制方法,该方法能够使得在CPU使用率控制时达到效果稳定、实时性高和精确性高的特点。本申请的第二个目的在于提出一种CPU使用率的控制装置。为了实现上述目的,本申请第一方面实施例的CPU使用率的控制方法,包括:启动工作进程,其中,所述工作进程与目标CPU具有绑定关系;获取所述目标CPU的当前使用率和目标使用率,并获取所述当前使用率和目标使用率之间的误差值;根据所述误差值生成
所述工作进程的工作时间;以及根据所述工作进程的工作时间对所述工作进程进行控制。本申请实施例的CPU使用率的控制方法能够使得在CPU控制过程中具有如下优点:1)效果稳定:由于启动跟CPU核心相同数量的工作进程,并且进行了CPU核心的绑定,使控制程序本身的CPU消耗可以忽略;2)实时性高:由于引入了PID控制算法,可以使得CPU控制程序非常灵敏,在每个采样周期内,都会计算比例项和积分项,滞后时间可控,为一个采样周期;3)精确性高:由于PID控制算法的积分项可以消除系统中的静态误差,所以可以适应各种不同系统,能够自动学习到系统中的静态误差,从而达到非常高的精确性,误差可以控制在较小值(如1%)以内。为了实现上述目的,本申请第二方面实施例的CPU使用率的控制装置,包括:启动模块,用于启动工作进程,其中,所述工作进程与目标CPU具有绑定关系;获取模块,用于获取所述目标CPU的当前使用率和目标使用率,并获取所述当前使用率和目标使用率之间的误差值;生成模块,用于根据所述误差值生成所述工作进程的工作时间;以及控制模块,用于根据所述工作进程的工作时间对所述工作进程进行控制。本申请实施例的CPU使用率的控制装置能够使得在CPU控制过程中具有如下优点:1)效果稳定:由于启动跟CPU核心相同数量的工作进程,并且进行了CPU核心的绑定,使控制程序本身的CPU消耗可以忽略;2)实时性高:由于引入了PID控制算法,可以使得CPU控制程序非常灵敏,在每个采样周期内,都会计算比例项和积分项,滞后时间可控,为一个采样周期;3)精确性高:由于PID控制算法的积分项可以消除系统中的静态误差,所以可以适应各种不同系统,能够自动学习到系统中的静态误差,从而达到非常高的精确性,误差可以控制在较小值(如1%)以内。本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,图1是根据本申请一个实施例的CPU使用率的控制方法的流程图;图2是PID控制算法的流程图;图3是根据本申请一个实施例的CPU使用率的控制装置的结构示意图;图4是根据本申请另一个实施例的CPU使用率的控制装置的结构示意图;图5是根据本申请又一个实施例的CPU使用率的控制装置的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。下面参考附图描述本申请实施例的CPU使用率的控制方法和装置。图1是根据本申请一个实施例的CPU使用率的控制方法的流程图。需要说明的是,在本申请的实施例中,CPU为多核CPU。为如图1所示,该CPU使用率的控制方法可以包括:S101,启动工作进程,其中,工作进程与目标CPU具有绑定关系。具体地,对于多核CPU需要启动多个工作进程,每个工作进程与一个目标CPU核心相对应,并且进行绑定,即达到此进程只能在被绑定的目标CPU核心上工作。S102,获取目标CPU的当前使用率和目标使用率,并获取当前使用率和目标使用率之间的误差值。具体地,可先获取目标CPU的当前使用率和目标使用率,之后可检查该目标CPU的当前使用率是否大于或者等于目标使用率,如果是,则不作任何响应;如果否,则可根据目标CPU的当前使用率和目标使用率计算当前使用率和目标使用率之间的误差值,如误差值即为目标使用率与当前使用率之间的差值。其中,在本申请的实施例中,目标使用率可理解为目标CPU的使用率将要达到的目标值,该目标使用率可以是根据实际场景情况预先设定的。其中,在本申请的实施例中,获取目标CPU的当前使用率的具体实现过程可为:分别在第一采样点和第二采样点读取/PROC/STAT文件;根据/PROC/STAT文件确定第一采样点和第二采样点之间的总使用时间和空闲使用时间;以及根据第一采样点和第二采样点之间的总使用时间和空闲使用时间获取目标CPU的当前使用率。举例而言,在Linux操作系统中,/PROC/STAT文件记录了CPU的实时使用情况,上述文件中各参数解释如下:由于上述/proc/stat中的数值都是从系统启动开始累计到当前时刻的积累值,所以需要在不同时间点t1和t2(即上述的第一采样点和第二采样点)取值进行比较运算,当两个时间点的间隔较短时,可以将这个计算结果作为目标CPU的当前使用率,即,可先分别在不同的采样点(即第一采样点和第二采样点)读取/PROC/STAT文件。之后,可计算第二采样点读取到的/PROC/STAT文件中的各个参数所对应的值(如user2、nice2、system2、idle2、iowait2、irq2、softirq2),与第一采样点读取到的/PROC/STAT文件中的各个参数所对应的值(如user1、nice1、system1、idle1、iowait1、irq1、softirq1)之间的差值,得到的差值即为目标CPU在第一采样点到本文档来自技高网
...

【技术保护点】
一种CPU使用率的控制方法,其特征在于,包括以下步骤:启动工作进程,其中,所述工作进程与目标CPU具有绑定关系;获取所述目标CPU的当前使用率和目标使用率,并获取所述当前使用率和目标使用率之间的误差值;根据所述误差值生成所述工作进程的工作时间;以及根据所述工作进程的工作时间对所述工作进程进行控制。

【技术特征摘要】
1.一种CPU使用率的控制方法,其特征在于,包括以下步骤:启动工作进程,其中,所述工作进程与目标CPU具有绑定关系;获取所述目标CPU的当前使用率和目标使用率,并获取所述当前使用率和目标使用率之间的误差值;根据所述误差值生成所述工作进程的工作时间;以及根据所述工作进程的工作时间对所述工作进程进行控制。2.如权利要求1所述的CPU使用率的控制方法,其特征在于,通过以下公式生成所述工作进程的工作时间: u ( t ) = k p e ( k ) + β k i Σ j = 0 k e ( j ) T ]]>其中,u(t)为工作进程的工作时间,kp为比例项系数,e(x)为误差值,β为积分项的开关系数,ki为积分项系数,j为当前是第j次采样,k为采样的总次数,T为采样点。3.如权利要求2所述的CPU使用率的控制方法,其特征在于,还包括:根据所述误差值计算累计误差值;当所述累计误差值小于或等于预设阈值时,β为1;当所述累计误差值大于所述预设阈值时,β为0。4.如权利要求1所述的CPU使用率的控制方法,其特征在于,还包括:将所述工作进程的工作时间设置为零。5.如权利要求2所述的CPU使用率的控制方法,其特征在于,所述比例项系数kp根据采样周期确定。6.如权利要求1所述的CPU使用率的控制方法,其特征在于,获取所述目标CPU的当前使用率具体包括:分别在第一采样点和第二采样点读取/PROC/STAT文件;根据所述/PROC/STAT文件确定所述第一采样点和第二采样点之间的总使用时间和空闲使用时间;以及根据所述第一采样点和第二采样点之间的总使用时间和空闲使用时间获取所述目标CPU的当前使用率。7.一种CPU使用率的控制装置,其特征在...

【专利技术属性】
技术研发人员:王桐
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1