一种任务处理方法及任务处理装置与流程

文档序号:11250696阅读:867来源:国知局
一种任务处理方法及任务处理装置与流程

本发明涉及任务处理技术,尤其涉及一种任务处理方法及任务处理装置。



背景技术:

计算环境中,非统一内存访问架构(numa,nonuniformmemoryaccessarchitecture)对性能带来较大挑战,例如,常会出现跨处理器(也即numa节点)之间的频繁内存访问。实际应用中,跨节点的内存访问会增大numa系统的开销,常会出现numa系统大多numa节点中中央处理器(cpu)占用较多,进而降低了系统性能。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供了一种任务处理方法及任务处理装置,能至少解决现有技术中存在的上述问题。

本发明实施例的技术方案是这样实现的:

本发明实施例第一方面提供了一种任务处理方法,包括:

采集到至少一个目标执行任务,获取所述至少一个目标执行任务的内存访问地址;

基于每一所述目标执行任务的内存访问地址确定出每一所述目标执行任务的物理访问地址;其中,所述目标执行任务由至少两个不同的中央处理器运行;所述物理访问地址表征运行所述目标执行任务的至少两个中央处理器的处理器标识;

至少利用物理访问地址所表征的处理器标识确定出所述目标执行任务在不同中央处理器的数据分布比例,基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理,以便于将所述至少一个目标执行任务的全部数据运行于同一中央处理器中。

上述方案中,所述采集到至少一个目标执行任务,包括:

采集到至少一个执行任务,对所述至少一个执行任务进行筛选,并筛选出满足预设规则的至少一个目标执行任务;其中,所述预设规则表征执行任务的访问延时数据大于第一阈值;或者,表征执行任务的目标参数满足预设条件。

上述方案中,所述数据分布比例表征所述目标执行任务在所述至少两个中央处理器中第一中央处理器运行的总数据量与在所述至少两个中央处理器中其他中央处理器运行的总数据量的分布比例;对应地,所述基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理,包括:

判断数据分布比例是否小于第二阈值;

确定小于所述第二阈值时,对所述至少一个目标执行任务进行数据迁移处理。

上述方案中,所述对所述至少一个目标执行任务进行数据迁移处理,包括:

对所述至少一个目标执行任务中的至少部分数据所运行的内存访问地址进行迁移;或者,

对所述至少一个目标执行任务对应的进程进行迁移。

本发明实施例第二方面提供了一种任务处理装置,包括:

处理器,用于采集到至少一个目标执行任务,获取所述至少一个目标执行任务的内存访问地址;基于每一所述目标执行任务的内存访问地址确定出每一所述目标执行任务的物理访问地址;其中,所述目标执行任务由至少两个不同的中央处理器运行;所述物理访问地址表征运行所述目标执行任务的至少两个中央处理器的处理器标识;

计数器,用于至少利用物理访问地址所表征的处理器标识确定出所述目标执行任务在不同中央处理器的数据分布比例;

对应地,所述处理器,还用于基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理,以便于将所述至少一个目标执行任务的全部数据运行于同一中央处理器中。

上述方案中,所述处理器,还用于采集到至少一个执行任务,对所述至少一个执行任务进行筛选,并筛选出满足预设规则的至少一个目标执行任务;其中,所述预设规则表征执行任务的访问延时数据大于第一阈值;或者,表征执行任务的目标参数满足预设条件。

上述方案中,所述数据分布比例表征所述目标执行任务在所述至少两个中央处理器中第一中央处理器运行的总数据量与在所述至少两个中央处理器中其他中央处理器运行的总数据量的分布比例;对应地,

所述处理器,还用于判断数据分布比例是否小于第二阈值;确定小于所述第二阈值时,对所述至少一个目标执行任务进行数据迁移处理。

上述方案中,所述处理器,还用于对所述至少一个目标执行任务中的至少部分数据所运行的内存访问地址进行迁移;或者,对所述至少一个目标执行任务对应的进程进行迁移。

上述方案中,所述处理器,还用于基于每一所述目标执行任务的内存访问地址确定出所述目标执行任务的物理页标识;基于物理页标识确定出每一所述目标执行任务的物理访问地址。

本发明实施例所述的任务处理方法及任务处理装置,在采集到至少一个目标执行任务后,通获取该目标执行任务的内存访问地址来确定出目标执行任务的物理访问地址,进而利用物理访问地址来确定出目标执行任务在不同中央处理器的数据分布比例,如此,基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理,以便于将所述至少一个目标执行任务的全部数据运行于同一中央处理器中,因此,本发明实施例为实现高效性能奠定了基础。而且,本发明实施例是基于目标执行任务在不同中央处理器的数据分布比例来确定是否进行数据迁移的,与现有利用模拟缺页方式观测跨节点访问来源的方式相比,本发明实施例无需模拟缺页异常,所以避免了因为操作系统维护数据结构识别是否真的缺页而导致统计出的信息不准确的问题,也就是说,与现有利用模拟缺页方式观测跨节点访问来源的方式相比,本发明实施例更加高效准确。

附图说明

图1为本发明实施例任务处理方法的实现流程示意图;

图2为本发明实施例任务处理方法中任务迁移前和任务迁移后的对比图;

图3为本发明实施例任务处理装置的组成结构示意图。

具体实施方式

为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

实施例一

本实施例提供了一种任务处理方法;所述方法可以具体应用于任务处理装置,这里,所述任务处理装置连接或设置有多个中央处理器,例如,所述任务处理装置设置或连接有多个numa节点,这样,当多个numa节点执行任务时,所述任务管理装置能够监控跨节点的内存访问情况,即监控哪些进程或者哪些内存区域频繁出现跨节点的内存访问,进而借助内存或者进程迁移框架对跨节点访问的任务进行迁移处理,以便于控制一个任务对应的运行数据运行于同一节点中,进而为实现高效性能奠定基础。具体地,图1为本发明实施例任务处理方法的实现流程示意图;如图1所示,所述方法包括:

步骤101:采集到至少一个目标执行任务,获取所述至少一个目标执行任务的内存访问地址;

在一具体实施例中,所述任务处理装置并非对所有执行任务都进行节点监控,而是有针对性的对特定任务进行监控,具体地,所述任务处理装置采集到至少一个执行任务后,先对所述至少一个执行任务进行筛选,筛选出满足预设规则任务作为目标执行任务,进而得到至少一个目标执行任务。这里,所述预设规则可以具体表征执行任务的访问延时数据大于第一阈值,例如大于3clock;或者,所述预设规则表征执行任务的目标参数满足预设条件,例如执行任务的内存节点号表征为预设内存,或执行任务的进程号表征为预设进程,这里,在实际应用中,可以将频繁出现跨节点内存访问的进程或内存区域作为预设进程,或者预设内存,进而通过上述方式筛选出目标执行任务。当然,在实际应用中,还可以根据实际需求按照其他方式进行筛选,本实施例对此不作限制。

步骤102:基于每一所述目标执行任务的内存访问地址确定出每一所述目标执行任务的物理访问地址;其中,所述目标执行任务由至少两个不同的中央处理器运行;所述物理访问地址表征运行所述目标执行任务的至少两个中央处理器的处理器标识;

本实施例中,确定出的目标执行任务的运行数据运行于不同的中央处理器,例如,如图2的左图所示,目标执行任务1中的部分运行数据运行于numa节点0(node0)中,而另外部分运行数据运行于numa节点1(node1)中,同时,目标执行任务2中的部分运行数据运行于numa节点0(node0)中,而另外部分运行数据运行于numa节点1(node1)中,即目标执行任务的运行数据运行于不同的节点中。这里,在目标执行任务对应的物理访问地址中携带有该目标执行任务所运行的不同中央处理器的处理器标识,该处理器标识能够唯一指向特定中央处理器,如此,便于基于物理访问地址去统计目标执行任务在不同中央处理器的数据分布比例。

在实际应用中,可以采用如下方式来确定出物理访问地址,具体地,基于每一所述目标执行任务的内存访问地址确定出所述目标执行任务的物理页标识;基于物理页标识确定出每一所述目标执行任务的物理访问地址,进而为基于物理访问地址确定出目标执行任务在不同中央处理器的数据分布比例奠定了基础。

步骤103:至少利用物理访问地址所表征的处理器标识确定出所述目标执行任务在不同中央处理器的数据分布比例,基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理。

具体地,当数据分布比例满足特定条件时,对所述至少一个目标执行任务进行数据迁移处理,实现将目标执行任务的全部数据运行于同一中央处理器中的目的;如图2右图所示,当目标执行任务1和目标执行任务2对应的数据分布比例满足特定条件时,对目标执行任务1和目标执行任务2进行数据迁移处理,使目标执行任务1对应的运行数据全部运行于numa节点1(node1)中,并使目标执行任务2对应的运行数据全部运行于numa节点0(node0)中。

这样,本发明实施例所述的方法,在采集到至少一个目标执行任务后,通获取该目标执行任务的内存访问地址来确定出目标执行任务的物理访问地址,进而利用物理访问地址来确定出目标执行任务在不同中央处理器的数据分布比例,如此,基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理,以便于将所述至少一个目标执行任务的全部数据运行于同一中央处理器中,因此,本发明实施例为实现高效性能奠定了基础。而且,本发明实施例是基于目标执行任务在不同中央处理器的数据分布比例来确定是否进行数据迁移的,与现有利用模拟缺页方式观测跨节点访问来源的方式相比,本发明实施例无需模拟缺页异常,所以避免了因为操作系统维护数据结构识别是否真的缺页而导致统计出的信息不准确的问题,也就是说,与现有利用模拟缺页方式观测跨节点访问来源的方式相比,本发明实施例更加高效准确。

实施例二

基于实施例一所述的方法,本实施例提供了数据迁移条件,以及数据迁移的具体方式;具体地,

在一实施例中,所述数据分布比例具体表征所述目标执行任务在所述至少两个中央处理器中第一中央处理器运行的总数据量与在所述至少两个中央处理器中其他中央处理器运行的总数据量的分布比例;在实际应用中,每一目标执行任务对应一个主中央处理器,例如,任务处理装置在获取到目标执行任务后,会基于负载均衡等为该目标执行任务分配一个特定中央处理器,任务处理装置为目标执行任务分配的该特定中央处理器即为所述目标执行任务对应的主处理器,这里,在实际应用中,目标执行任务中的部分运行数据还会运行于其他处理器中,该其他处理器可以为辅处理器,此时,所述数据分布比例即具体表征目标执行任务在主处理器(如第一中央处理器)中运行的总数据量与在辅处理器中运行的总数据量的比值。进一步地,当辅处理器存在多个时,所述数据分布比例可以具体表征目标执行任务在主处理器(如第一中央处理器)中运行的总数据量与在一个辅处理器中运行的总数据量的比值,或者表征目标执行任务在主处理器(如第一中央处理器)中运行的总数据量与在所有辅处理器中运行的总数据量的比值。这样,为基于数据分布比例确定数据迁移策略奠定了基础。

进一步地,当确定出数据分布比例后,所述任务处理装置还判断数据分布比例是否小于第二阈值,如小于50%,确定小于所述第二阈值时,对所述至少一个目标执行任务进行数据迁移处理。也就是说,所述任务处理装置确定出目标执行任务在主处理器运行的总数据量较少,而辅处理器中运行的总数据量较多时,才会执行数据迁移处理,否则,不执行。

进一步地,所述任务处理装置可以采用如下方式对进行数据迁移处理,具体地,对所述至少一个目标执行任务中的至少部分数据所运行的内存访问地址进行迁移;或者,对所述至少一个目标执行任务对应的进程进行迁移。也就是说,所述任务处理装置可以迁移进程,或者迁移内存访问地址。

这里,在实际应用中,可以使用硬件计数器来统计数据分布比例,该方式对系统干扰低,而且高效准确。以下通过具体应用示例对本发明实施例做进一步详细说明;具体地,在每个cpu上绑定一项内存访问监测服务,该内存访问监测服务对cpu的寄存器机制进行编程。进一步地,操作系统启动时,启动内存访问监测服务(该服务有60s定时器时钟,且可根据需要关闭或者继续),且在内存访问监测服务启动或者继续时对pebs寄存器进行编程,其中,采样率为100hz,过虑条件为内存延迟大于3时钟,同时分配采样的硬件缓冲区的地址。这里,每个采样到来时,硬件会自动中断,中断应答从硬件缓冲区取出中断发生的各寄存器状态、内存访问地址,与此内存访问地址关联的cpu号、物理页面号、所在的内存节点号以及进程号。在60s定时器中断发生时,由cpu号,内存节点号,进程号和物理页面号统计出每个进程的每一个采样物理页面本地与远程访问比例。若该比例小于1:1,即远程访问较多,则进行迁移处理,如进行进程迁移,或内存迁移。

实施例三

本实施例提供了一种任务处理装置,这里,所述任务处理装置连接或设置有多个中央处理器,例如,所述任务处理装置设置或连接有多个numa节点,这样,当多个numa节点执行任务时,所述任务管理装置能够监控跨节点的内存访问情况,即监控哪些进程或者哪些内存区域频繁出现跨节点的内存访问,进而借助内存或者进程迁移框架对跨节点访问的任务进行迁移处理,以便于控制一个任务对应的运行数据运行于同一节点中,进而为实现高效性能奠定基础。具体地,如图3所示,所述任务处理装置包括:

处理器31,用于采集到至少一个目标执行任务,获取所述至少一个目标执行任务的内存访问地址;基于每一所述目标执行任务的内存访问地址确定出每一所述目标执行任务的物理访问地址;其中,所述目标执行任务由至少两个不同的中央处理器运行;所述物理访问地址表征运行所述目标执行任务的至少两个中央处理器的处理器标识;

计数器32,用于至少利用物理访问地址所表征的处理器标识确定出所述目标执行任务在不同中央处理器的数据分布比例;

对应地,所述处理器31,还用于基于数据分布比例确定是否对所述至少一个目标执行任务进行数据迁移处理,以便于将所述至少一个目标执行任务的全部数据运行于同一中央处理器中。

在一具体实施例中,所述处理器31并非对所有执行任务都进行节点监控,而是有针对性的对特定任务进行监控,具体地,所述处理器31,还用于采集到至少一个执行任务,对所述至少一个执行任务进行筛选,并筛选出满足预设规则的至少一个目标执行任务;其中,所述预设规则表征执行任务的访问延时数据大于第一阈值;或者,表征执行任务的目标参数满足预设条件。这里,所述预设规则可以具体表征执行任务的访问延时数据大于第一阈值,例如大于3clock;或者,所述预设规则表征执行任务的目标参数满足预设条件,例如执行任务的内存节点号表征为预设内存,或执行任务的进程号表征为预设进程,在实际应用中,可以将频繁出现跨节点内存访问的进程或内存区域作为预设进程,或者预设内存,进而通过上述方式筛选出目标执行任务。当然,在实际应用中,还可以根据实际需求按照其他方式进行筛选,本实施例对此不作限制。

在另一具体实施例中,所述数据分布比例表征所述目标执行任务在所述至少两个中央处理器中第一中央处理器运行的总数据量与在所述至少两个中央处理器中其他中央处理器运行的总数据量的分布比例;在实际应用中,每一目标执行任务对应一个主中央处理器,例如,任务处理装置在获取到目标执行任务后,会基于负载均衡等为该目标执行任务分配一个特定中央处理器,任务处理装置为目标执行任务分配的该特定中央处理器即为所述目标执行任务对应的主处理器,这里,在实际应用中,目标执行任务中的部分运行数据还会运行于其他处理器中,该其他处理器可以为辅处理器,此时,所述数据分布比例即具体表征目标执行任务在主处理器(如第一中央处理器)中运行的总数据量与在辅处理器中运行的总数据量的比值。进一步地,当辅处理器存在多个时,所述数据分布比例可以具体表征目标执行任务在主处理器(如第一中央处理器)中运行的总数据量与在一个辅处理器中运行的总数据量的比值,或者表征目标执行任务在主处理器(如第一中央处理器)中运行的总数据量与在所有辅处理器中运行的总数据量的比值。这样,为基于数据分布比例确定数据迁移策略奠定了基础。

进一步地,当确定出数据分布比例后,所述处理器31,还用于判断数据分布比例是否小于第二阈值,如小于50%;确定小于所述第二阈值时,对所述至少一个目标执行任务进行数据迁移处理。也就是说,所述任务处理装置确定出目标执行任务在主处理器运行的总数据量较少,而辅处理器中运行的总数据量较多时,才会执行数据迁移处理,否则,不执行。

在另一具体实施例中,所述处理器31,还用于对所述至少一个目标执行任务中的至少部分数据所运行的内存访问地址进行迁移;或者,对所述至少一个目标执行任务对应的进程进行迁移。

在另一具体实施例中,可以采用如下方式来确定出物理访问地址,所述处理器31,还用于基于每一所述目标执行任务的内存访问地址确定出所述目标执行任务的物理页标识;基于物理页标识确定出每一所述目标执行任务的物理访问地址。

这里,在实际应用中,可以使用硬件计数器来统计数据分布比例,该方式对系统干扰低,而且高效准确。以下通过具体应用示例对本发明实施例做进一步详细说明;具体地,在每个cpu上绑定一项内存访问监测服务,该内存访问监测服务对cpu的寄存器机制进行编程。进一步地,操作系统启动时,启动内存访问监测服务(该服务有60s定时器时钟,且可根据需要关闭或者继续),且在内存访问监测服务启动或者继续时对pebs寄存器进行编程,其中,采样率为100hz,过虑条件为内存延迟大于3时钟,同时分配采样的硬件缓冲区的地址。这里,每个采样到来时,硬件会自动中断,中断应答从硬件缓冲区取出中断发生的各寄存器状态、内存访问地址,与此内存访问地址关联的cpu号、物理页面号、所在的内存节点号以及进程号。在60s定时器中断发生时,由cpu号,内存节点号,进程号和物理页面号统计出每个进程的每一个采样物理页面本地与远程访问比例。若该比例小于1:1,即远程访问较多,则进行迁移处理,如进行进程迁移,或内存迁移。

这里需要指出的是:以上任务处理装置实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本发明任务处理装置实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明实施例的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实施例原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明实施例的保护范围。

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