一种任务调节方法、计算机可读存储介质及终端设备与流程

文档序号:16067476发布日期:2018-11-24 12:48阅读:157来源:国知局

本发明属于计算机技术领域,尤其涉及一种任务调节方法、计算机可读存储介质及终端设备。

背景技术

在业务系统中,常常会有多个任务同时运行,以充分利用系统的硬件资源,但是,随着系统中同时运行的任务数的不断累加,可能会超出系统的承载能力,一旦系统达到瓶颈点后爆发,可能导致部分系统甚至整个系统无法使用,如果是多个系统共处于一个主机,甚至可能导致主机下的所有系统无法服务,造成巨大的经济损失。



技术实现要素:

有鉴于此,本发明实施例提供了一种任务调节方法、计算机可读存储介质及终端设备,以解决系统中同时运行的任务数超出系统的承载能力时可能导致系统无法使用的问题。

本发明实施例的第一方面提供了一种任务调节方法,可以包括:

分别获取目标系统中的各种硬件资源的利用率;

根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率;

判断所述目标系统的整体利用率是否大于预设的第一阈值;

若所述目标系统的整体利用率大于所述第一阈值,则获取正在所述目标系统中运行的各个任务的基准利用率,所述基准利用率为各个任务单独在所述目标系统中运行时所述目标系统的整体利用率;

从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务;

暂停所述第一调节任务在所述目标系统中的运行。

本发明实施例的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:

分别获取目标系统中的各种硬件资源的利用率;

根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率;

判断所述目标系统的整体利用率是否大于预设的第一阈值;

若所述目标系统的整体利用率大于所述第一阈值,则获取正在所述目标系统中运行的各个任务的基准利用率,所述基准利用率为各个任务单独在所述目标系统中运行时所述目标系统的整体利用率;

从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务;

暂停所述第一调节任务在所述目标系统中的运行。

本发明实施例的第三方面提供了一种任务调节终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:

分别获取目标系统中的各种硬件资源的利用率;

根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率;

判断所述目标系统的整体利用率是否大于预设的第一阈值;

若所述目标系统的整体利用率大于所述第一阈值,则获取正在所述目标系统中运行的各个任务的基准利用率,所述基准利用率为各个任务单独在所述目标系统中运行时所述目标系统的整体利用率;

从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务;

暂停所述第一调节任务在所述目标系统中的运行。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例首先分别获取目标系统中的各种硬件资源的利用率,并根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率,然后判断所述目标系统的整体利用率是否大于预设的第一阈值,若所述目标系统的整体利用率大于所述第一阈值,则获取正在所述目标系统中运行的各个任务的基准利用率,接着从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务,并暂停所述第一调节任务在所述目标系统中的运行。本发明实施例对目标系统的资源使用情况提供了一套完备的度量体系,从而可以精确的度量目标系统的资源使用情况,当资源消耗过大时,通过对任务运行情况进行调节,可以有效减少对系统资源的消耗,保证了整个系统的正常运行。

附图说明

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

图1为本发明实施例中一种任务调节方法的一个实施例流程图;

图2为硬件资源的权重系数的设置过程的示意流程图;

图3为基准利用率的设置过程的示意流程图;

图4为本发明实施例中一种任务调节装置的一个实施例结构图;

图5为本发明实施例中一种任务调节终端设备的示意框图。

具体实施方式

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

请参阅图1,本发明实施例中一种任务调节方法的一个实施例可以包括:

步骤s101、分别获取目标系统中的各种硬件资源的利用率。

所述目标系统可以为支持sql脚本运行的数据库系统,所述各种硬件资源的利用率可以包括cpu利用率、内存利用率、io资源利用率等等。

其中,cpu利用率可以通过以下过程进行获取:

在第一采样时刻,提取cpu运行状态数据,在第二采样时刻,提取cpu运行状态数据,第二采样时刻与所述第一采样时刻间隔预设的时长(例如0.1秒、0.2秒、0.5秒等等),根据在第一采样时刻的cpu运行状态数据和在第二采样时刻的cpu运行状态数据计算cpu利用率。

具体地,提取出以下cpu运行状态数据:

user:处于用户态的运行时间,不包含nice值为负的进程;

nice:nice值为负的进程所占用的cpu时间,nice值是系统中表示静态优先级的数值,每个进程都有自己的静态优先级,优先级高的进程得以优先运行;

system:处于核心态的运行时间;

idle:除io等待时间以外的其他等待时间;

iowait:io等待时间;

irq:服务中断时间;

softirq:软中断时间;

stealstolen:在虚拟环境运行时花费在其他操作系统的时间;

guest:操作系统虚拟cpu花费的时间;

guest_nice:操作系统虚拟cpu花费在nice进程上的时间。

先后采样两个足够短的时间间隔的cpu运行状态数据,分别记作t1、t2,其中t1、t2的结构均为(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest、guest_nice)的10元组;把第一次的所有10元组数据求和,得到totalcputime1;把第二次的所有10元组数据求和,得到totalcputime2;获得第一次的idle数据,记为idle1;获得第二次的idle数据,记为idle2;则cpu利用率λcpu可以通过下式计算:

内存利用率可以通过以下过程进行获取:

统计内存空间总量以及内存空间可使用的余量,根据内存空间总量以及内存空间可使用的余量计算内存利用率,即:

其中,memtotal为内存空间总量,memfree为内存空间可使用的余量,λmemory为内存利用率

io资源利用率可以通过以下过程进行获取:

统计io读写的总次数以及io读写的理论次数,将两者的比值作为io资源利用率,即:

其中,numio为io读写的总次数,maxnumio为io读写的理论次数,λio为内存利用率。

步骤s102、根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率。

具体地,可以根据下式计算所述目标系统的整体利用率:

其中,p为硬件资源的序号,1≤p≤p,p为所述目标系统中的硬件资源的种类总数,parasysp为所述目标系统中的第p种硬件资源的利用率,例如,parasys1可以为cpu利用率,parasys2可以为内存利用率,parasys3可以为io资源利用率,weightp为所述目标系统中的第p种硬件资源的权重系数,indextotal为所述目标系统的整体利用率。

优选地,如图2所示,所述权重系数的设置过程可以包括:

步骤s201、获取所述目标系统在预设的统计时间段内的历史运行记录。

可以根据实际情况对所述统计时间段的取值进行设置,例如,可以将其设置为1天、1周、1个月或者其它取值。

步骤s202、将所述统计时间段划分为t个子时间段。

t为大于1的整数,可以根据实际情况对其取值进行设置,例如,可以将其设置为5、10、20或者其它取值。

步骤s203、根据所述历史运行记录分别统计各种硬件资源的利用率在各个子时间段内超过所述第一阈值的次数。

可以根据实际情况对所述第一阈值的取值进行设置,例如,可以将其设置为20、30、50或者其它取值。

步骤s204、计算所述权重系数。

具体地,可以根据下式计算所述权重系数:

其中,t为所述统计时间段内的子时间段按照时间先后顺序依次排列的序号,1≤t≤t,alertnump,t为在第t个子时间段内第p种硬件资源的利用率超过所述第一阈值的次数,k为预设的基准系数,k′为预设的增量系数,可以根据实际情况将k和k′设置为任意正数,特殊地,可以设置

步骤s103、判断所述目标系统的整体利用率是否大于预设的第一阈值。

可以根据实际情况对所述第一阈值的取值进行设置,例如,可以将其设置为80%、85%、90%或者其它取值。

若所述目标系统的整体利用率大于所述第一阈值,则执行步骤s104及其后续步骤,若所述目标系统的整体利用率小于或等于所述第一阈值,则执行步骤s107及其后续步骤。

步骤s104、获取正在所述目标系统中运行的各个任务的基准利用率。

所述任务可以为在所述目标系统中运行的sql脚本任务,所述基准利用率为各个任务单独在所述目标系统中运行时所述目标系统的整体利用率。即为了保证参数的准确性,避免多个sql脚本任务之间的互相干扰,在本实施例中,预先对各个sql脚本任务的运行情况进行分别收集。

优选地,如图3所示,所述基准利用率的设置过程可以包括:

步骤s301、分别在所述目标系统中单独运行各个任务,在任务运行过程中对各种硬件资源的利用率分别进行n次采样,并记录采样结果。

n为大于1的整数,可以根据实际情况对其取值进行设置,例如,可以将其设置为100、200、500或者其它取值。

优选地,可以将所述采样结果记录如下:

parasets,p={paras,p,1,paras,p,2,......,paras,p,n,......,paras,p,n}

其中,s为任务的序号,1≤s≤s,s为任务的总数,parasets,p为第s个任务对第p种硬件资源的利用率采样值集合,n为采样值的序号,1≤n≤n,paras,p,n为第s个任务对第p种硬件资源的利用率的第n个采集值;

步骤s302、将所述采样值集合中满足预设条件的采样值确定为优选采样值。

优选地,可以将所述采样值集合中满足下式的采样值确定为优选采样值:

步骤s303、构造优选采样值集合。

优选地,可以根据下式构造优选采样值集合:

paraset′s,p={para′s,p,1,para′s,p,2,......,para′s,p,n′,......,para′s,p,n′}

其中,paraset′s,p为第s个任务对第p种硬件资源的利用率的优选采样值集合,n′为优选采样值的序号,1≤n≤n′,n′为优选采样值的个数,para′s,p,n′为第s个任务对第p种硬件资源的利用率的第n个优选采集值;

步骤s304、计算所述基准利用率。

优选地,可以根据下式计算所述基准利用率:

其中,indexs为第s个任务的基准利用率。

步骤s105、从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务。

具体地,可以将满足下述条件的m的取值确定为选取的任务数:

其中,alertthreshh为所述第一阈值。

步骤s106、暂停所述第一调节任务在所述目标系统中的运行。

在本实施例中,可以设置两个sql脚本任务集合,分别为运行sql脚本任务集合runsqlset和暂停sql脚本任务集合suspsqlset,其中,运行sql脚本任务集合中包括各个正在运行的sql脚本任务,暂停sql脚本任务集合中包括各个被暂停运行的sql脚本任务。当indextotal超过所述第一阈值时,暂停掉所述第一调节任务在所述目标系统中的运行,并将其从运行sql脚本任务集合移入到暂停sql脚本任务集合。

步骤s107、判断所述目标系统的整体利用率是否小于预设的第二阈值。

所述第二阈值小于所述第一阈值,可以根据实际情况对所述第二阈值的取值进行设置,例如,可以将其设置为60%、65%、70%或者其它取值。

若所述目标系统的整体利用率小于所述第二阈值,则执行步骤s108及其后续步骤,若所述目标系统的整体利用率大于或等于所述第二阈值,则执行步骤s111。

步骤s108、获取在所述目标系统中被暂停的各个任务的基准利用率。

步骤s108的过程与步骤s104的过程类似,具体可参加步骤s104中的详细描述,本实施例在此不再赘述。

步骤s109、从在所述目标系统中被暂停的各个任务中选取基准利用率最低的m′个任务作为第二调节任务。

具体地,可以将满足下述条件的m′的取值确定为选取的任务数:

其中,alertthreshl为所述第二阈值。

步骤s110、恢复所述第二调节任务在所述目标系统中的运行。

当indextotal低于所述第二阈值时,恢复所述第二调节任务在所述目标系统中的运行,并将其从暂停sql脚本任务集合移入到运行sql脚本任务集合,通过运行sql脚本任务集合和暂停sql脚本任务集合之间不断地相互转换,保持整个目标系统的资源消耗保持在一个较为稳定的水平,从而避免系统运行达到瓶颈点后爆发,可能导致系统业务无法处理,甚至整个系统无法使用的情况发生。

步骤s111、确定所述目标系统运行正常。

当indextotal处于所述第一阈值和所述第二阈值之间,则说明所述目标系统运行正常,其资源消耗保持在一个较为稳定的水平,此时,无需对其进行额外的调节。

综上所述,本发明实施例首先分别获取目标系统中的各种硬件资源的利用率,并根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率,然后判断所述目标系统的整体利用率是否大于预设的第一阈值,若所述目标系统的整体利用率大于所述第一阈值,则获取正在所述目标系统中运行的各个任务的基准利用率,接着从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务,并暂停所述第一调节任务在所述目标系统中的运行。本发明实施例对目标系统的资源使用情况提供了一套完备的度量体系,从而可以精确的度量目标系统的资源使用情况,当资源消耗过大时,通过对任务运行情况进行调节,可以有效减少对系统资源的消耗,保证了整个系统的正常运行。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的一种任务调节方法,图4示出了本发明实施例提供的一种任务调节装置的一个实施例结构图。

本实施例中,一种任务调节装置可以包括:

利用率获取模块401,用于分别获取目标系统中的各种硬件资源的利用率;

整体利用率计算模块402,用于根据所述目标系统中的各种硬件资源的利用率计算所述目标系统的整体利用率;

第一判定模块403,用于判断所述目标系统的整体利用率是否大于预设的第一阈值;

第一基准利用率获取模块404,用于若所述目标系统的整体利用率大于所述第一阈值,则获取正在所述目标系统中运行的各个任务的基准利用率,所述基准利用率为各个任务单独在所述目标系统中运行时所述目标系统的整体利用率;

第一任务选取模块405,用于从正在所述目标系统中运行的各个任务中选取基准利用率最高的m个任务作为第一调节任务;

暂停运行模块406,用于暂停所述第一调节任务在所述目标系统中的运行。

进一步地,所述整体利用率计算模块可以包括:

整体利用率计算单元,用于根据下式计算所述目标系统的整体利用率:

其中,p为硬件资源的序号,1≤p≤p,p为所述目标系统中的硬件资源的种类总数,parasysp为所述目标系统中的第p种硬件资源的利用率,weightp为所述目标系统中的第p种硬件资源的权重系数,indextotal为所述目标系统的整体利用率。

进一步地,所述任务调节装置还可以包括:

历史运行记录获取模块,用于获取所述目标系统在预设的统计时间段内的历史运行记录;

子时间段划分模块,用于将所述统计时间段划分为t个子时间段,t为大于1的整数;

统计模块,用于根据所述历史运行记录分别统计各种硬件资源的利用率在各个子时间段内超过所述第一阈值的次数;

权重系数计算模块,用于根据下式计算所述权重系数:

其中,t为所述统计时间段内的子时间段按照时间先后顺序依次排列的序号,1≤t≤t,alertnump,t为在第t个子时间段内第p种硬件资源的利用率超过所述第一阈值的次数,k为预设的基准系数,k′为预设的增量系数。

进一步地,所述任务调节装置还可以包括:

采样结果记录模块,用于分别在所述目标系统中单独运行各个任务,在任务运行过程中对各种硬件资源的利用率分别进行n次采样,并将采样结果记录如下:

parasets,p={paras,p,1,paras,p,2,......,paras,p,n,......,paras,p,n}

其中,s为任务的序号,1≤s≤s,s为任务的总数,parasets,p为第s个任务对第p种硬件资源的利用率采样值集合,n为采样值的序号,1≤n≤n,paras,p,n为第s个任务对第p种硬件资源的利用率的第n个采集值;

优选采样值确定模块,用于将所述采样值集合中满足下式的采样值确定为优选采样值:

优选采样值集合构造模块,用于根据下式构造优选采样值集合:

paraset′s,p={para′s,p,1,para′s,p,2,......,para′s,p,n′,......,para′s,p,n′}

其中,paraset′s,p为第s个任务对第p种硬件资源的利用率的优选采样值集合,n′为优选采样值的序号,1≤n≤n′,n′为优选采样值的个数,para′s,p,n′为第s个任务对第p种硬件资源的利用率的第n个优选采集值;

基准利用率计算模块,用于根据下式计算所述基准利用率:

其中,indexs为第s个任务的基准利用率。

进一步地,所述任务调节装置还可以包括:

第二判断模块,用于判断所述目标系统的整体利用率是否小于预设的第二阈值,所述第二阈值小于所述第一阈值;

第二基准利用率获取模块,用于若所述目标系统的整体利用率小于所述第二阈值,则获取在所述目标系统中被暂停的各个任务的基准利用率;

第二任务选取模块,用于从在所述目标系统中被暂停的各个任务中选取基准利用率最低的m′个任务作为第二调节任务;

恢复运行模块,用于恢复所述第二调节任务在所述目标系统中的运行。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

图5示出了本发明实施例提供的一种任务调节终端设备的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。

在本实施例中,所述任务调节终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该任务调节终端设备5可包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52,例如执行上述的任务调节方法的计算机可读指令。所述处理器50执行所述计算机可读指令52时实现上述各个任务调节方法实施例中的步骤,例如图1所示的步骤s101至s106。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至406的功能。

示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令52在所述任务调节终端设备5中的执行过程。

所述处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51可以是所述任务调节终端设备5的内部存储单元,例如任务调节终端设备5的硬盘或内存。所述存储器51也可以是所述任务调节终端设备5的外部存储设备,例如所述任务调节终端设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述任务调节终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述任务调节终端设备5所需的其它指令和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。

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

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