一种动态优化方法及系统与流程

文档序号:12271048阅读:281来源:国知局
一种动态优化方法及系统与流程

本发明涉及操作系统技术领域,更具体地说,涉及一种动态优化方法及系统。



背景技术:

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

为了保证操作系统的正常高效运行,经常需要对运行在其中的任务进行优化。现有技术中对于任务的优化通常是需要在任务运行之前,通过对操作系统中现有资源占用情况及待运行任务的相关信息确定是否需要对该任务进行优化以及如何对该任务进行优化。但是,由于任务在运行过程中可能会发生一些变化,而上述静态的优化方式无法获知这种变化,更无法针对这种变化做出对应的优化决策,因此,导致对于操作系统中任务的优化有效性较差。

综上所述,现有技术中对于操作系统中任务的优化方式存在优化效果较差的问题。



技术实现要素:

本发明的目的是提供一种动态优化方法及系统,以解决现有技术中对于操作系统中任务的优化方式存在的优化效果较差的问题。

为了实现上述目的,本发明提供如下技术方案:

一种动态优化方法,包括:

获取正在运行中的各个任务的运行信息,并基于该运行信息由所述各个任务中选取出具有性能瓶颈的待优化任务;

利用预先由外界输入的优化原则对所述待优化任务进行优化;

获取已进行优化的待优化任务的优化运行信息,并在该优化运行信息不符合预设要求时将对应待优化任务返回至进行优化前的状态。

优选的,获取正在运行中的各个任务的运行信息,包括:

获取正在运行中的各个任务的CPU占用率、内存占用率及IO占用率;

对应的,基于该运行信息由所述各个任务中选取出具有性能瓶颈的待优化任务,包括:

确定所述CPU占用率大于CPU阈值和/或所述内存占用率大于对应内存阈值和/或所述IO占用率大于IO阈值的任务为所述待优化任务。

优选的,选取出所述待优化任务之后,还包括:

将所述待优化任务划分为计算密集型、内存密集型及IO密集型;

对应的,利用预先由外界输入的优化原则对所述待优化任务进行优化,包括:

按照所述优化原则中分别与所述计算密集型、内存密集型及IO密集型对应的优化原则对该密集型的任务进行优化。

优选的,将所述待优化任务划分为计算密集型、内存密集型及IO密集型,包括:

对于任一待优化任务,确定其CPU占用率与CPU阈值的差值与CPU阈值的比值为第一比值,内存占用率与内存阈值的差值与内存阈值的比值为第二比值,IO占用率与IO阈值的差值与IO阈值的比值为第三比值,如果第一比值最大,则该待优化任务为计算密集型,如果第二比值最大,则该待优化任务为内存密集型,如果第三比值最大,则该待优化任务为IO密集型。

优选的,判断已进行优化的待优化任务的优化运行信息是否符合预设要求,包括:

所述待优化任务的优化运行信息包括其当前时刻的CPU占用率、内存占用率及IO占用率时,如果该待优化任务当前时刻的CPU占用率小于或等于CPU阈值且内存占用率小于或等于内存阈值且IO占用率小于或等于IO阈值,则确定该待优化任务符合预设要求;否则,则确定该待优化任务不符合预设要求。

一种动态优化系统,包括:

选取模块,用于获取正在运行中的各个任务的运行信息,并基于该运行信息由所述各个任务中选取出具有性能瓶颈的待优化任务;

优化模块,用于利用预先由外界输入的优化原则对所述待优化任务进行优化;

判决模块,用于获取已进行优化的待优化任务的优化运行信息,并在该优化运行信息不符合预设要求时将对应待优化任务返回至进行优化前的状态。

优选的,所述选取模块包括:

获取单元,用于获取正在运行中的各个任务的CPU占用率、内存占用率及IO占用率;

选取单元,用于确定所述CPU占用率大于CPU阈值和/或所述内存占用率大于对应内存阈值和/或所述IO占用率大于IO阈值的任务为所述待优化任务。

优选的,还包括:

分类模块,用于将所述待优化任务划分为计算密集型、内存密集型及IO密集型;

对应的,所述优化模块包括:

优化单元,用于按照所述优化原则中分别与所述计算密集型、内存密集型及IO密集型对应的优化原则对该密集型的任务进行优化。

优选的,所述分类模块包括:

分类单元,用于对于任一待优化任务,确定其CPU占用率与CPU阈值的差值与CPU阈值的比值为第一比值,内存占用率与内存阈值的差值与内存阈值的比值为第二比值,IO占用率与IO阈值的差值与IO阈值的比值为第三比值,如果第一比值最大,则该待优化任务为计算密集型,如果第二比值最大,则该待优化任务为内存密集型,如果第三比值最大,则该待优化任务为IO密集型。

优选的,所述判决模块包括:

判决单元,用于所述待优化任务的优化运行信息包括其当前时刻的CPU占用率、内存占用率及IO占用率时,如果该待优化任务当前时刻的CPU占用率小于或等于CPU阈值且内存占用率小于或等于内存阈值且IO占用率小于或等于IO阈值,则确定该待优化任务符合预设要求;否则,则确定该待优化任务不符合预设要求。

本发明提供了一种动态优化方法及系统,其中该方法包括:获取正在运行中的各个任务的运行信息,并基于该运行信息由所述各个任务中选取出具有性能瓶颈的待优化任务;利用预先由外界输入的优化原则对所述待优化任务进行优化;获取已进行优化的待优化任务的优化运行信息,并在该优化运行信息不符合预设要求时将对应待优化任务返回至进行优化前的状态。通过本申请公开的上述技术方案,获取正在运行中各个任务的运行信息,并基于该运行信息确定出待优化任务,对该待优化任务进行优化,从而实现了对于各个任务的运行信息的动态获取,进而实现对于任务的动态优化,保证了对于任务优化的有效性,保证了操作系统中各个任务的高效运行。另外,在对待优化任务的优化未成功时,将待优化任务返回至优化前的状态,能够避免多余资源的浪费,实现了资源的合理利用。

附图说明

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

图1为本发明实施例提供的一种动态优化方法的流程图;

图2为本发明实施例提供的一种动态优化系统的结构示意图。

具体实施方式

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

请参阅图1,其示出了本发明实施例提供的一种动态优化方法的流程图,可以包括以下步骤:

S11:获取正在运行中的各个任务的运行信息,并基于该运行信息由各个任务中选取出具有性能瓶颈的待优化任务。

其中,正在运行的各个任务的运行信息可以包括该任务在运行过程中对操作系统中各项资源的占用情况;当基于各个任务对操作系统中各项资源的占用情况确定出其中某些资源出现占用比例较大的情况并且该情况会导致利用该资源运行的任务在速率等方面受到不良影响时,说明利用该资源运行的任务为具有性能瓶颈的待优化任务,此时,需要对其进行优化,以避免其受到上述不良影响。

具体来说,上述实现过程可以通过操作系统中安装的工具(如vmstat、top、iostat、perf等)获取上述各个任务的运行信息,基于该运行信息将有性能瓶颈的待优化任务

S12:利用预先由外界输入的优化原则对待优化任务进行优化。

其中,优化原则可以是由工作人员根据其经验按照一定规则编写得到的,具体可以将优化原则输入并存储至对应的优化文件(也可以是数据库等,具体可以根据实际需要进行确定)中,由此,基于优化原则即可实现对待优化任务的优化,从而保证了待优化任务的高效运行。具体来说,对于待优化任务的优化可以包括两次优化,一次是用户态优化,一次时内核态优化,当然也可以只进行上述两项中的一项优化,具体可以根据实际需要进行确定。

S13:获取已进行优化的待优化任务的优化运行信息,并在该优化运行信息不符合预设要求时将对应待优化任务返回至进行优化前的状态。

在待优化任务已经被优化后,需要监视该任务是否得到真正的优化。此时只需获取已经优化的待优化任务的当前的优化运行信息,该信息与上述运行信息的区别在于其是针对已经优化的待优化任务当前时刻的运行获取的信息,通过对这些信息可以获知已经优化的待优化任务的资源占用情况,进而确定是否存在某些资源出现占用比例较大且该导致利用该资源运行的待优化任务在速率等方面受到不良影响的情况,如果存在,则说明该待优化任务未得到真正的优化,只需将其返回至没有优化前的状态即可,如果不存在,则说明该待优化任务得到了真正的优化,继续按照优化后的方式进行运行即可。

通过本申请公开的上述技术方案,获取正在运行中各个任务的运行信息,并基于该运行信息确定出待优化任务,对该待优化任务进行优化,从而实现了对于各个任务的运行信息的动态获取,进而实现对于任务的动态优化,保证了对于任务优化的有效性,保证了操作系统中各个任务的高效运行。另外,在对待优化任务的优化未成功时,将待优化任务返回至优化前的状态,能够避免多余资源的浪费,实现了资源的合理利用。

本发明实施例提供的一种动态优化方法,获取正在运行中的各个任务的运行信息,可以包括:

获取正在运行中的各个任务的CPU占用率、内存占用率及IO占用率;

对应的,基于该运行信息由各个任务中选取出具有性能瓶颈的待优化任务,包括:

确定CPU占用率大于CPU阈值和/或内存占用率大于对应内存阈值和/或IO占用率大于IO阈值的任务为待优化任务。

其中,CPU占用率、内存占用率及IO占用率与现有技术中的对应概念一致,在此不再赘述;而CPU阈值、内存阈值及IO阈值可以根据实际需要进行确定。当任务的确定CPU占用率大于CPU阈值和/或内存占用率大于对应内存阈值和/或IO占用率大于IO阈值时,很容易出现速率降低等问题,此时,需要对该任务进行优化。

本发明实施例提供的一种动态优化方法,选取出待优化任务之后,还可以包括:

将待优化任务划分为计算密集型、内存密集型及IO密集型。

其中,对于待优化任务的划分可以根据其对应的CPU占用率、内存占用率及IO占用率实现,具体可以由工作人员根据实际需要设置对应的规则,在此不做具体限定。简单来说,计算密集型对应CPU占用率、内存密集型对应内存占用率、IO密集型对应IO占用率。具体来说,将待优化任务划分为计算密集型、内存密集型及IO密集型,可以包括:对于任一待优化任务,确定其CPU占用率与CPU阈值的差值与CPU阈值的比值为第一比值,内存占用率与内存阈值的差值与内存阈值的比值为第二比值,IO占用率与IO阈值的差值与IO阈值的比值为第三比值,如果第一比值最大,则该待优化任务为计算密集型,如果第二比值最大,则该待优化任务为内存密集型,如果第三比值最大,则该待优化任务为IO密集型。由此,实现待优化任务对应于不同类型的划分。

对应的,利用预先由外界输入的优化原则对待优化任务进行优化,可以包括:

按照优化原则中分别与计算密集型、内存密集型及IO密集型对应的优化原则对该密集型的任务进行优化。

其中,优化原则中对应于不同的类型可以有不同的原则,可以根据实际需要进行确定,具体来说,对于计算密集型,可以包括以下优化原则:

1、绑定node(可细化到CPU):将待优化任务迁移至单独的node(CPU)上,以利用该单独的node(CPU)实现该待优化任务的运行;

2、通过cgroup来指定资源:为待优化任务分配对应的CPU资源;

3、通过proc下面的参数调节:通过这些参数的调节实现为待优化任务分配合理的CPU资源;

4、调整进程的优先级;为不同待优化任务分配对应的优先级,以对优先级高的待优化任务优先处理;

5、平衡中断:将当前CPU上的中断迁移至其他CPU上,以降低该CPU占用率。

从而通过上述方案提高对应任务的运行速率。当然还可以根据实际需要设置其他具体优化原则,而在具体实施时采用哪种优化原则可以由工作人员根据该待优化人员的工作场景进行实际确定,并写入优化原则中。

对于IO密集型,可以包括以下优化原则:

1、将待优化任务迁移到对应IO设备所在的clump上;

2、通过调节proc下面和IO传输相关的参数,比如块设备队列等为待优化任务分配对应的IO资源;

3、通过调整磁盘子系统(I/O调度,文件系统选择等)或调整网络子系统(网卡绑定,增加网络缓冲区等)为待优化任务分配对应的IO资源。

从而通过上述方案提高对应任务的运行速率。当然还可以根据实际需要设置其他具体优化原则,而在具体实施时采用哪种优化原则可以由工作人员根据该待优化人员的工作场景进行实际确定,并写入优化原则中。

对于内存密集型,可以包括以下优化原则:

1、大页方式:将内存设置为每页包含数据量大于根据实际需要设定阈值;

2、内存回收参数:将已经被占用的内存按照根据实际需要设定的规则进行回收;

3、调整swap:将内存中的部分数据写入到swap里。

从而通过上述方案提高对应任务的运行速率。当然还可以根据实际需要设置其他具体优化原则,而在具体实施时采用哪种优化原则可以由工作人员根据该待优化人员的工作场景进行实际确定,并写入优化原则中。

本发明实施例提供的一种动态优化方法,判断已进行优化的待优化任务的优化运行信息是否符合预设要求,可以包括:

待优化任务的优化运行信息包括其当前时刻的CPU占用率、内存占用率及IO占用率时,如果该待优化任务当前时刻的CPU占用率小于或等于CPU阈值且内存占用率小于或等于内存阈值且IO占用率小于或等于IO阈值,则确定该待优化任务符合预设要求;否则,则确定该待优化任务不符合预设要求。

当上述各项均小于或等于对应阈值时,说明资源占用情况已经达到一个比较合理的状态,因此,通过上述判断可以准确得出待优化任务是否得到真正优化的结果。

另外,本发明实施例提供的上述技术方案中,工作人员可以根据实际需要在任意时刻修改或者增加或者减少优化原则,从而能够使得优化原则能够最大程度上符合实际情况,保证了对于待优化任务的有效优化。

本发明实施例还提供了一种动态优化系统,如图2所示,可以包括:

选取模块11,用于获取正在运行中的各个任务的运行信息,并基于该运行信息由各个任务中选取出具有性能瓶颈的待优化任务;

优化模块12,用于利用预先由外界输入的优化原则对待优化任务进行优化;

判决模块13,用于获取已进行优化的待优化任务的优化运行信息,并在该优化运行信息不符合预设要求时将对应待优化任务返回至进行优化前的状态。

本发明实施例提供的一种动态优化系统,选取模块可以包括:

获取单元,用于获取正在运行中的各个任务的CPU占用率、内存占用率及IO占用率;

选取单元,用于确定CPU占用率大于CPU阈值和/或内存占用率大于对应内存阈值和/或IO占用率大于IO阈值的任务为待优化任务。

本发明实施例提供的一种动态优化系统,还可以包括:

分类模块,用于将待优化任务划分为计算密集型、内存密集型及IO密集型;

对应的,优化模块包括:

优化单元,用于按照优化原则中分别与计算密集型、内存密集型及IO密集型对应的优化原则对该密集型的任务进行优化。

本发明实施例提供的一种动态优化系统,分类模块可以包括:

分类单元,用于对于任一待优化任务,确定其CPU占用率与CPU阈值的差值与CPU阈值的比值为第一比值,内存占用率与内存阈值的差值与内存阈值的比值为第二比值,IO占用率与IO阈值的差值与IO阈值的比值为第三比值,如果第一比值最大,则该待优化任务为计算密集型,如果第二比值最大,则该待优化任务为内存密集型,如果第三比值最大,则该待优化任务为IO密集型。

本发明实施例提供的一种动态优化系统,判决模块可以包括:

判决单元,用于待优化任务的优化运行信息包括其当前时刻的CPU占用率、内存占用率及IO占用率时,如果该待优化任务当前时刻的CPU占用率小于或等于CPU阈值且内存占用率小于或等于内存阈值且IO占用率小于或等于IO阈值,则确定该待优化任务符合预设要求;否则,则确定该待优化任务不符合预设要求。

本发明实施例提供的一种动态优化系统中相关部分的说明请参见本发明实施例提供的一种动态优化方法中对应部分的详细说明,在此不再赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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