一种NUMA架构下沙箱环境内虚拟任务模拟方法及装置与流程

文档序号:11285942阅读:187来源:国知局
一种NUMA架构下沙箱环境内虚拟任务模拟方法及装置与流程

本发明涉及numa架构应用技术领域,特别是涉及一种numa架构下沙箱环境内虚拟任务模拟方法及其装置。



背景技术:

numa(nonuniformmemoryaccessarchitecture,非统一内存访问架构)结构中存在多个内存节点(memorynode),每个内存节点及其对应的多核系统构成一个内存区域(memorydomain),每个内存区域具有独立且私有的内存控制器。

为了确认numa架构下各种任务需要分配的调度策略,需要对任务进行模拟运行,一般是依据当前实际运行的真实任务进行模拟,但是,由于真实任务中出现各种类型的情况不确定,故仅依据真实任务不能够很快地确定全部类型的任务的运行情况,模拟测试效率低。

因此,如何提供一种模拟测试效率高的numa架构下沙箱环境内虚拟任务模拟方法及其装置是本领域技术人员目前需要解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种numa架构下沙箱环境内虚拟任务模拟方法及其装置,能够通过模拟运行特定类型的任务来完善真实任务类型的不足,模拟测试的效率高。其具体方案如下:

一种numa架构下沙箱环境内虚拟任务模拟方法,包括:

将预设的任务测试集中的任务作为基础,调整相应的任务参数合成特定类型的虚拟任务或多种类型组成的虚拟任务组合;所述任务测试集内包含多种类型的任务以及同时运行的多种任务组合;

在沙箱环境下运行所述虚拟任务或所述虚拟任务组合,得到各个虚拟任务对应的指纹及调度策略存储至经验数据库内;所述沙箱环境的配置与所述生产环境的配置相同。

优选地,还包括:

运行所述虚拟任务组合时,确定所述虚拟任务之间是否出现资源竞争,若出现资源竞争,确定当前的资源瓶颈,并依据预设策略调整相应任务对应的资源调度策略,确定相应任务的资源分配。

优选地,所述特定类型包括:

内存密集型任务、cpu密集型任务、带宽密集型任务以及延迟敏感型任务中的任一种。

优选地,所述任务参数包括:

任务类型信息、任务时间点、任务地点。

优选地,所述调整相应的任务参数合成特定类型的虚拟任务或多种类型组成的虚拟任务组合的过程具体为:

调整任务所需的资源参数和任务地点,得到特定类型的虚拟任务;

或从所述任务测试集中选取多种不同类型的任务或任务组合,调整所选取的各个任务的资源参数、任务地点及任务时间点得到所述虚拟任务组合。

优选地,所述任务测试集的生成过程为:

获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;

运行所述任务,监测所述任务的运行状态来获取所述任务的指纹;

依据所述指纹及经验数据库确定所述任务的资源调度策略;

将沙箱环境内运行的任务的任务信息、与其并行运行的任务的任务信息以及该任务的资源调度策略记录至预设数据库内;

所述预设数据库内存储的真实任务运行记录以及用户输入的多种条件下的特定任务的运行记录共同组成所述任务测试集。

为解决上述技术问题,本发明还提供了一种numa架构下沙箱环境内虚拟任务模拟装置,包括:

任务合成模块,用于将预设的任务测试集中的任务作为基础,调整相应的任务参数合成特定类型的虚拟任务或多种类型组成的虚拟任务组合;所述任务测试集内包含多种类型的任务以及同时运行的多种任务组合;

虚拟任务运行模块,用于在沙箱环境下运行所述虚拟任务或所述虚拟任务组合,得到各个虚拟任务对应的指纹及调度策略存储至经验数据库内;所述沙箱环境的配置与所述生产环境的配置相同。

优选地,还包括:

处于沙箱环境内的资源竞争分析模块,用于在运行所述虚拟任务组合时,确定所述虚拟任务之间是否出现资源竞争,若出现资源竞争,确定当前的资源瓶颈,并将当前任务信息及瓶颈信息发送至调度模块;

所述调度模块,用于依据所述资源竞争分析模块发送的任务信息及瓶颈信息以及预设策略,调整相应任务对应的资源调度策略,确定相应任务的资源分配。

优选地,所述任务合成模块具体包括:

单个任务合成单元,用于将所述任务测试集中的任务作为基础,调整任务所需的资源参数和任务地点,得到特定类型的虚拟任务;

任务组合合成单元,用于从所述任务测试集中选取多种不同类型的任务或任务组合,调整所选取的各个任务的资源参数、任务地点及任务时间点得到所述虚拟任务组合。

优选地,还包括:

真实任务运行模块,用于获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;运行所述任务,监测所述任务的运行状态来获取所述任务的指纹;依据所述指纹及经验数据库确定所述任务的资源调度策略;

任务测试集生成模块,用于将沙箱环境内运行的任务的任务信息、与其并行运行的任务的任务信息以及该任务的资源调度策略记录至预设数据库内;所述预设数据库内存储的真实任务运行记录以及用户输入的多种条件下的特定任务的运行记录共同组成所述任务测试集。

本发明中,numa架构下沙箱环境内虚拟任务模拟方法,包括:将预设的任务测试集中的任务作为基础,调整相应的任务参数合成特定类型的虚拟任务;运行虚拟任务,得到虚拟任务对应的指纹及调度策略存储至经验数据库内。

可见,本发明通过将预设的任务测试集中的任务作为基础来合成特定类型的虚拟任务,进而依据这些虚拟任务,来完善真实任务类型的不足,使得能在沙箱环境内,尽快地运行全部所需类型的任务,确定其任务运行情况,得到各种类型下对应的指纹及调度策略,提高模拟测试的效率。

附图说明

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

图1为本发明实施例公开的一种numa架构下沙箱环境内虚拟任务模拟方法流程图;

图2为本发明实施例公开的一种numa架构下沙箱环境内虚拟任务模拟装置结构示意图。

具体实施方式

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

为了确认numa架构下各种任务需要分配的调度策略,有必要对任务进行模拟运行,一般是依据当前实际运行的真实任务进行模拟,但是,由于真实任务中出现各种类型的情况不确定,故仅依据真实任务不能够很快地确定全部类型的任务的运行情况,模拟测试效率低。为此,本发明实施例相应公开了一种numa架构下沙箱环境内虚拟任务模拟方法及其装置,能够通过模拟运行特定类型的任务来完善真实任务类型的不足,模拟测试的效率高。

参见图1所示,本发明实施例公开了一种numa架构下沙箱环境内虚拟任务模拟方法,包括:

步骤s101:将预设的任务测试集中的任务作为基础,调整相应的任务参数合成特定类型的虚拟任务或多种类型组成的虚拟任务组合;任务测试集内包含多种类型的任务以及同时运行的多种任务组合;

步骤s102:在沙箱环境下运行虚拟任务或虚拟任务组合,得到各个虚拟任务对应的指纹及调度策略存储至经验数据库内;沙箱环境的配置与生产环境的配置相同。

合成虚拟任务的目的是为了加速经验数据库的完善速度以及提高经验数据库的丰富性,例如,若仅依靠拷贝真实环境中的任务值沙箱环境运行,若真实任务中迟迟不出现cpu密集型的任务,则经验数据库的完善时间会很长,为了尽快完善经验数据库,需要从任务测试集中获取cpu密集型的任务进行运行;另外,为了确定在多任务共同运行下的任务模拟情况,则需要从任务测试集中获得不同类型的任务进行共同运行,具体从任务测试集中获取的任务类型以及合成的任务类型根据实际需要而定。

其中,上述特定类型包括:内存密集型任务、cpu密集型任务、带宽密集型任务以及延迟敏感型任务中的任一种。

这里的特定类型指的是各种资源密集型的任务,本发明不限定任务的类型分类。

另外,由于每种类型的任务其具体的资源参数(任务所需的各类资源的硬件性能指标的数值)不同,为了尽可能完善每种类型的任务对应的资源调度策略,因此在需要测试一种类型的任务时,优选在任务测试集的基础上,获取多个参数不同的同类型虚拟任务进行分别运行。

可以理解的是,产品在出厂前需要进行实验室测试,即在实验室环境下运行numa架构下的任务,来依据运行结果确定运行是否正常,但是由于实验室环境与生产环境差距较大,无法模拟生产环境下的各种复杂条件,导致得到的测试效果精度低。同时,在实际应用中,需要根据任务测试运行时的结果来确定相应的调度策略,指导后续任务的运行,若确定调度策略时采用实验室环境下的测试结果,调度策略的分配不够合理,若直接依据实际运行中的任务,会导致需要很长一段时间的运行后才能完善各种类型的任务的调度策略,耗时过长。为此,需要将真实任务拷贝至与生产环境完全相同的环境内(即沙箱环境内)模拟运行,来得到更加符合真实运行的需要的资源调度策略。

进一步的,本发明还包括:

运行虚拟任务组合时,确定虚拟任务之间是否出现资源竞争,若出现资源竞争,确定当前的资源瓶颈,并依据预设策略调整相应任务对应的资源调度策略,确定相应任务的资源分配。

可以理解的是,由于实际任务运行过程中,有时是单个任务进行运行有时是多个任务进行运行,在多个任务运行时,各个任务之间可能出现相互干扰,这种情况下各个任务的资源调度策略与单个任务运行时是不同的,因此为了完善经验数据库,需要在沙箱环境下模拟各种任务组合的运行情况。

进一步的,本实施例中的任务参数具体可以包括:任务类型信息(cpu密集度、内存密集度、带宽密集度)、任务时间点、任务地点等。其中,cpu密集度又分为cache敏感型,l1/l2/l3敏感型等。任务参数具体指的是任务运行时会造成瓶颈的资源种类,具体包括哪些参数本发明不作具体限定。

可以理解的是,由于任务的运行时间及运行地点的不同,会导致其对应的资源调度策略不同;因此,在本实施例中为了提高完善经验数据库,在生成虚拟任务和虚拟任务组合的时候,需要考虑任务的多维度参数,该多维度参数可以为任务的运行时间、运行地点等。

其中,步骤s101中,调整相应的任务参数合成特定类型的虚拟任务或多种类型组成的虚拟任务组合的过程具体为:

调整任务所需的资源参数和任务地点,得到特定类型的虚拟任务;

或从任务测试集中选取多种不同类型的任务或任务组合,调整所选取的各个任务的资源参数、任务地点及任务时间点得到虚拟任务组合。

进一步可知,为了提高经验数据库的丰富性,本发明中的任务测试集内需要包含有各种类型的任务及任务组合,这些任务可根据之前实际运行过的真实任务的任务信息分类后的得到,也可以是人为设定参数后得到任务。

任务测试集的获得过程具体为:

步骤s201:获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;

步骤s202:运行任务,监测任务的运行状态来获取任务的指纹;

步骤s203:依据指纹及经验数据库确定任务的资源调度策略;

步骤s204:将沙箱环境内运行的任务的任务信息、与其并行运行的任务的任务信息以及该任务的资源调度策略记录至预设数据库内;预设数据库内存储的真实任务运行记录以及用户输入的多种条件下的特定任务的运行记录共同组成任务测试集。

其中,用户输入特定任务的目的是为了补充真实任务运行记录的片面性和不足。这里的任务信息包括任务运行数据、任务所处的虚拟机、任务时间点。

另外,由于真实环境下,一般往往会有多个任务同时运行,这些任务之间很可能会互相干扰,因此为了保障沙箱环境下测试的真实性,一般需要将任务时间点内同时运行的多个任务一起拷贝至沙箱环境内运行并记录同时运行的任务组合的运行结果。

另外,步骤s202中,获取指纹的过程具体为:

检测任务的运行状态及资源需求,并记录任务的多维度参数;

利用所述任务的运行状态、资源需求以及多维度参数,生成与所述任务对应的指纹。

相应的,步骤s204中确定资源调度策略的过程具体为:

判断经验数据库中是否存在与所述指纹一致的目标指纹;若存在,则识别成功;若不存在,则识别失败;识别成功后,从经验数据库获取识别任务的资源调度策略;经验数据库中包括已识别任务的指纹。

可见,本发明实施例通过将预设的任务测试集中的任务作为基础来合成特定类型的虚拟任务,进而依据这些虚拟任务,来完善真实任务类型的不足,使得能在沙箱环境内,尽快地运行全部所需类型的任务,确定其任务运行情况,得到各种类型下对应的指纹及调度策略,提高模拟测试的效率。

与上一实施例对应的,本发明实施例进一步公开了一种numa架构下沙箱环境内虚拟任务模拟装置,参见图2所示,该装置包括:

任务合成模块201,用于将预设的任务测试集中的任务作为基础,调整相应的任务参数合成特定类型的虚拟任务或多种类型组成的虚拟任务组合;任务测试集内包含多种类型的任务以及同时运行的多种任务组合;

虚拟任务运行模块202,用于在沙箱环境下运行虚拟任务或虚拟任务组合,得到各个虚拟任务对应的指纹及调度策略存储至经验数据库内;沙箱环境的配置与生产环境的配置相同。

进一步的,本实施例中的虚拟任务模拟装置还可以包括资源竞争分析模块以及调度模块;其中,

处于沙箱环境内的资源竞争分析模块,用于在在运行虚拟任务组合时,确定虚拟任务之间是否出现资源竞争,若出现资源竞争,确定当前的资源瓶颈,并将当前任务信息及瓶颈信息发送至调度模块;

调度模块,用于依据资源竞争分析模块发送的任务信息及瓶颈信息以及预设策略,调整相应任务对应的资源调度策略,确定相应任务的资源分配。

进一步可知,任务合成模块201具体包括:

单个任务合成单元,用于将任务测试集中的任务作为基础,调整任务所需的资源参数和任务地点,得到特定类型的虚拟任务;

任务组合合成单元,用于从任务测试集中选取多种不同类型的任务或任务组合,调整所选取的各个任务的资源参数、任务地点及任务时间点得到虚拟任务组合。

作为优选地,该装置还包括:

真实任务运行模块,用于获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;运行任务,监测任务的运行状态来获取任务的指纹;依据指纹及经验数据库确定任务的资源调度策略;

任务测试集生成模块,用于将沙箱环境内运行的任务的任务信息、与其并行运行的任务的任务信息以及该任务的资源调度策略记录至预设数据库内;预设数据库内存储的真实任务运行记录以及用户输入的多种条件下的特定任务的运行记录共同组成任务测试集。

可见,本发明实施例通过将预设的任务测试集中的任务作为基础来合成特定类型的虚拟任务,进而依据这些虚拟任务,来完善真实任务类型的不足,使得能在沙箱环境内,尽快地运行全部所需类型的任务,确定其任务运行情况,得到各种类型下对应的指纹及调度策略,提高模拟测试的效率。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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