一种NUMA架构下沙箱环境测试方法及其系统与流程

文档序号:11199065阅读:414来源:国知局
一种NUMA架构下沙箱环境测试方法及其系统与流程

本发明涉及numa架构应用技术领域,特别是涉及一种numa架构下沙箱环境测试方法及其系统。



背景技术:

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

目前产品出厂前需要进行实验室测试,即在实验室环境下运行numa架构下的任务,来依据运行结果确定运行是否正常,但是由于实验室环境与生产环境差距较大,无法模拟生产环境下的各种复杂条件,导致得到的测试效果精度低。

同时,在实际应用中,需要根据任务测试运行时的结果来确定相应的调度策略,指导后续任务的运行,若确定调度策略时采用实验室环境下的测试结果,调度策略的分配不够合理,若直接依据实际运行中的任务,会导致需要很长一段时间的运行后才能完善各种类型的任务的调度策略,耗时过长。

因此,如何提供一种测试精度高且能够指导调度策略的分配的numa架构下沙箱环境测试方法及其系统是本领域技术人员目前需要解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种numa架构下沙箱环境测试方法及其系统,将真实任务在与生产环境完全相同的环境内模拟运行,测试精度高,得到的资源调度策略也符合真实运行的需要。其具体方案如下:

一种numa架构下沙箱环境测试方法,包括:

获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;所述沙箱环境的配置与所述生产环境的配置相同;

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

依据所述指纹及经验数据库确定所述任务的资源调度策略;所述经验数据库内存储有各类指纹对应的资源调度策略。

优选地,还包括:

在沙箱环境中有多个任务同时运行时,监测任务间的资源干扰;

若出现资源竞争,确定当前的资源瓶颈,并依据预设策略调整相应任务对应的资源调度策略,确定相应任务的资源分配。

优选地,还包括:

当生产环境中有多个任务同时运行时,计算所述沙箱环境内独立运行的任务与所述生产环境内该任务的性能结果进行比较,得到该任务的性能干扰粒度;

将所述性能干扰粒度存储至所述经验数据库内,供后续任务依据自身指纹与所述经验数据库内的数据确定资源调度策略。

优选地,还包括:

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

优选地,还包括:

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

将所述任务测试集中的任务作为基础,调整相应的任务参数合成特定运行环境下特定类型的虚拟任务;

运行所述虚拟任务,得到所述虚拟任务对应的指纹及调度策略存储至所述经验数据库内。

优选地,所述任务信息具体包括:

任务运行数据、任务所处的虚拟机、任务时间点。

为解决上述技术问题,本发明还提供了一种numa架构下沙箱环境测试系统,包括:

代理模块,用于获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;所述沙箱环境的配置与所述生产环境的配置相同;

沙箱环境模块,用于运行所述任务;

指纹采集模块,用于监测所述任务的运行状态来获取所述任务的指纹;

调度模块,用于依据所述指纹及经验数据库确定所述任务的资源调度策略;所述经验数据库内存储有各类指纹对应的资源调度策略。

优选地,还包括:

处于沙箱环境内的资源竞争分析模块,用于在沙箱环境中有多个任务同时运行时,监测任务间的资源干扰;若出现资源竞争,确定当前的资源瓶颈,并将当前任务信息及瓶颈信息发送至所述调度模块;

所述调度模块还包括:

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

优选地,所述沙箱环境模块还包括:

缓存模拟单元,用于在所述任务触发数据库请求时,从所述代理模块的缓存内获取所述任务所需的数据库数据。

优选地,还包括:

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

虚拟任务运行模块,用于将所述任务测试集中的任务作为基础,调整相应的任务参数合成特定运行环境下特定类型的虚拟任务;运行所述虚拟任务,得到所述虚拟任务对应的指纹及调度策略存储至所述经验数据库内。

可见,本发明提供了一种numa架构下沙箱环境测试方法及其系统,通过将生产环境内的任务同步拷贝至与生产环境完全相同的沙箱环境内运行,能够完全模拟任务在实际运行中的各种复杂条件,测试精度高,进而使得沙箱环境内任务运行后确定的资源调度策略能够符合生产环境的需要。

附图说明

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

图1为本发明实施例公开的一种numa架构下沙箱环境测试方法流程图;

图2为本发明实施例公开的一种numa架构下沙箱环境测试系统结构示意图。

具体实施方式

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

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

参见图1所示,本发明实施例公开了一种numa架构下沙箱环境测试方法,包括:

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

其中,上述任务信息可具体包括:任务运行数据、任务所处的虚拟机、任务时间点。

可以理解的是,由于一个任务在不同的时间点其运行情况不同,为了使生产环境内的任务在沙箱环境中能够处于基本完全相同的运行环境,因此除了拷贝任务运行数据和任务所处的虚拟机外,还需要拷贝任务时间点。

另外,由于真实环境下,一般往往会有多个任务同时运行,这些任务之间很可能会互相干扰,因此为了保障沙箱环境下测试的真实性,一般需要将任务时间点内同时运行的多个任务一起拷贝至沙箱环境内,或者,若沙箱环境内设置有包含多种任务记录集合的任务测试集的话,也可以调用任务测试集中的记录,模拟生成那些在真实环境中与拷贝任务并行运行的其他任务。

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

获取指纹的过程具体为:通过计数器对所述任务的预定的硬件采样事件进行信息采集,并对采集的信息进行分析挖掘,生成与所述任务对应的指纹;其中,所述指纹中包括多个硬件性能指标。

具体的,由于云环境下服务的多样性,为了保证生成的任务指纹能够准确的识别不同的任务,在本实施例中采用数据挖掘的方式来标注负载任务之间的区别,确定与每个任务的硬件性能指标对应的数值范围,在对任务进行识别时,只要该任务的硬件性能指标的计数值落在相对应的数值区间内,则认为该任务与该区间内的任务属于同一种类型的任务。

步骤s103:依据指纹及经验数据库确定任务的资源调度策略;经验数据库内存储有各类指纹对应的资源调度策略。

其中,步骤s102中的过程具体为:

步骤s1021:在numa架构的沙箱环境进行测试的过程中,对当前时刻下沙箱环境中运行的任务进行实时监视;

步骤s1022:若监视到当前时刻下沙箱环境中存在需要进行资源调度的任务,则提取相应的任务指纹。

另外,由于任务的运行时间及运行地点的不同,会导致产生的指纹不同;因此,在本实施例中为了提高识别的准确度,可将在检测任务的运行状态及资源需求时,同时采集该任务的多维度参数,该多维度参数可以为任务的运行时间、运行地点等,这样在对任务进行识别时,可优先从经验数据库中运行时间及运行地点一致的指纹开始查找,从而提高了任务识别的准确度。

此时步骤s102中,多维度获取指纹的过程具体包括:

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

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

相应的,之后步骤s103的过程具体为:

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

具体的,经验数据库的创建过程具体为:

采集历史上在不同时刻下运行时会引发资源调度需求的任务对应的运行时刻信息以及任务信息;确定出与采集到的运行时刻信息以及任务信息对应的资源调度策略;将采集到的运行时刻信息、任务信息以及确定出的相应的资源调度策略进行记录,得到经验数据库。

其中,上述采集历史上在不同时刻下运行时会引发资源调度需求的任务对应的运行时刻信息以及任务信息的过程,具体可以包括:采集历史上在不同时刻下运行时会引发资源调度需求的单个任务所对应的运行时刻以及任务信息;

以及采集历史上在不同时刻下运行时会产生相互干扰事件的任务对应的运行时刻信息以及任务信息。

进一步的,本实施例还可以包括:

在沙箱环境中有多个任务同时运行时,监测任务间的资源干扰;

若出现资源竞争,确定当前的资源瓶颈,并依据预设策略调整相应任务对应的资源调度策略,确定相应任务的资源分配。

其中,确定瓶颈后,具体调整资源分配的过程为:

确定不满足目标服务水平slo的目标任务;

根据所述目标任务的资源瓶颈、任务类型以及任务指标,对所述目标任务的资源调度策略进行调整;其中,所述任务指标包括硬件性能指标及任务固有性能指标。

具体的,自适应调度器需要实时的监测任务的性能结果,例如:延迟,吞吐量或者任务完成时间等信息。如果slo无法被满足,则需要进一步调整瓶颈资源的分配。任务资源的干扰需要与负载的变化进行区隔,因为资源干扰带来的性能降级与负载强度的变化具有本质的不同,负载强度变化可以从任务分类中体现出来。本实施例采用如下的公式标识资源竞争带来的性能影响:

该index表示在完成资源分配之后,资源竞争对于性能的影响。值得说明的是,本实施例并不仅仅依赖于底层硬件信息作为任务的性能指标,还依赖于任务本身固有的性能指标,例如,响应时间与吞吐量。因此,当任务竞争确实存在时,资源竞争分析器指定资源竞争的瓶颈,例如,共享cache以及i/o;并且,在运行调度策略后,如果任务固有的性能指标无法被满足,本实施例对资源调度策略进行调整,例如:调整最低的资源分配用于满足任务的性能需求。此外,自适应调度器通过任务的指纹从经验数据库中查询当前瓶颈资源的分配建议,如果当前的经验数据库中不包含到来任务的对应指纹信息,自适应调度器在经验数据库中找到类似的指纹索引,找出类似的资源分配策略用于执行调度过程。

进一步的,本实施例还可以包括:

当生产环境中有多个任务同时运行时,计算沙箱环境内独立运行的任务与生产环境内该任务的性能结果进行比较,得到该任务的性能干扰粒度;然后将性能干扰粒度存储至经验数据库内,供后续任务依据自身指纹与经验数据库内的数据确定资源调度策略。

另外,在沙箱环境下对任务进行测试运行的目的是为了完善经验数据库,得到用于指导实际任务运行的资源调度策略,这种情况下,若只是通过运行真实任务,则完善经验数据库的时间会很长,为了加速经验数据库的完善速度以及提高经验数据库的丰富性,需要在沙箱环境内运行一些合成的虚拟任务,这些虚拟任务主要包括真实环境内出现较少的类型的任务以及同时出现较少的任务组合等。

为实现上述目的,则需要在沙箱环境内创建任务测试集。

在具体实施例中,本发明还包括:

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

进一步的,该方法还包括:

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

将所述任务测试集中的任务作为基础,调整相应的任务参数合成特定运行环境下特定类型的虚拟任务;

运行所述虚拟任务,得到所述虚拟任务对应的指纹及调度策略存储至所述经验数据库内。

其中,用户输入特定任务的目的是为了补充真实任务运行记录的片面性和不足,任务测试集内需要包含各种类型的任务以及各种同时运行的任务组合。

可见,本发明实施例通过将生产环境内的任务同步拷贝至与生产环境完全相同的沙箱环境内运行,能够完全模拟任务在实际运行中的各种复杂条件,测试精度高,进而使得沙箱环境内任务运行后确定的资源调度策略能够符合生产环境的需要。

参见图2所示,本发明实施例还相应公开了一种numa架构下沙箱环境测试系统,包括:

代理模块201,用于获取生产环境内的任务的任务信息,将其同步拷贝至沙箱环境内;沙箱环境的配置与生产环境的配置相同;

沙箱环境模块202,用于运行任务;

指纹采集模块203,用于监测任务的运行状态来获取任务的指纹;

调度模块204,用于依据指纹及经验数据库确定任务的资源调度策略;经验数据库内存储有各类指纹对应的资源调度策略。

进一步的,本实施例还可以包括:

处于沙箱环境内的资源竞争分析模块,用于在沙箱环境中有多个任务同时运行时,监测任务间的资源干扰;若出现资源竞争,确定当前的资源瓶颈,并将当前任务信息及瓶颈信息发送至调度模块204。

另外,调度模块204还可以包括:

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

进一步的,本实施例还可以包括:

干扰粒度计算模块,用于当生产环境中有多个任务同时运行时,计算沙箱环境内独立运行的任务与生产环境内该任务的性能结果进行比较,得到该任务的性能干扰粒度;将性能干扰粒度存储至经验数据库内,供后续任务依据自身指纹与经验数据库内的数据确定资源调度策略。

进一步的,本实施例中的沙箱环境模块202还可以包括:

缓存模拟单元,用于在任务触发数据库请求时,从代理模块201的缓存内获取任务所需的数据库数据。

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

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

虚拟任务运行模块,用于将任务测试集中的任务作为基础,调整相应的任务参数合成特定运行环境下特定类型的虚拟任务;运行虚拟任务,得到虚拟任务对应的指纹及调度策略存储至经验数据库内。

可见,本发明实施例通过将生产环境内的任务同步拷贝至与生产环境完全相同的沙箱环境内运行,能够完全模拟任务在实际运行中的各种复杂条件,测试精度高,进而使得沙箱环境内任务运行后确定的资源调度策略能够符合生产环境的需要。

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

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

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

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

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

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