掌桥专利:专业的专利平台
掌桥专利
首页

任务管理方法及装置

文献发布时间:2023-06-19 19:30:30


任务管理方法及装置

技术领域

本公开涉及计算机技术领域,尤其涉及一种任务管理方法及装置。

背景技术

服务系统通常支持多种类型的计算任务,而多种复杂计算对于运行环境要求不一,例如,在线服务和实时计算对稳定性要求极高且延时要求在毫秒级别,离线计算对于吞吐要求高并可以忽略延时,异构计算包含对延时要求较高和对于吞吐要求较高的两种类型计算但是依赖于异构设备。

目前,常通过部署多个集群,分别运行不同类型的计算任务,从而满足各种类型计算任务对于运行环境的差异化需求,但是,该方式会造成严重的资源浪费。

发明内容

为了解决上述技术问题,本公开提供了一种任务管理方法及装置。

第一方面,本公开提供了一种任务管理方法,包括:

接收任务请求,并基于所述任务请求包含的指示信息确定待处理任务对应的资源隔离级别和计算资源需求;其中,所述资源隔离级别用于指示所述待处理任务对应的中央处理器CPU隔离策略;所述计算资源需求包括所述待处理任务对于CPU核心的需求;

根据所述资源隔离级别、所述计算资源需求以及各计算节点上的CPU核心分配情况,为所述待处理任务分配相应的目标CPU核心;

启动所述待处理任务对应的任务进程,将所述目标CPU核心与所述任务进程绑定,所述待处理任务对应的任务进程使用所述目标CPU核心执行所述待处理任务。

在一些实施例中,所述根据所述资源隔离级别、所述计算资源需求以及各计算节点上的CPU核心分配情况,为所述待处理任务分配相应的目标CPU核心,包括:

基于各计算节点上的CPU核心分配情况,确定可分配的CPU核心资源满足所述计算资源需求的计算节点为所述待处理任务对应的目标计算节点;

根据所述资源隔离级别、所述计算资源需求以及所述目标计算节点对应的CPU核心分配情况,从所述目标计算节点包括的CPU核心中确定所述目标CPU核心;

为所述目标CPU核心添加已分配标签以及所述待处理任务的标签,以将所述目标CPU核心分配给所述待处理任务。

在一些实施例中,所述根据所述资源隔离级别、所述计算资源需求以及所述目标计算节点对应的CPU核心分配情况,从所述目标计算节点包括的CPU核心中确定所述目标CPU核心,包括:

若所述待处理任务为第一资源隔离级别,则从所述目标计算节点包括空闲CPU核心中确定所述目标CPU核心;其中,所述待处理任务独占所述目标CPU核心;

若所述待处理任务为第二资源隔离级别,则从所述目标计算节点包括空闲CPU核心或者绑定了指定资源隔离级别的任务的CPU核心中确定所述目标CPU核心;所述待处理任务独占所述目标CPU核心或者与所述指定资源隔离级别的任务共享所述目标CPU核心;

若所述待处理任务对应第三资源隔离级别,则从所述目标计算节点包括的未被第一资源隔离级别和第二资源隔离级别的任务占用的CPU核心中确定所述目标CPU核心;其中,所述目标CPU核心允许绑定其他第三资源隔离级别的计算任务;

若所述待处理任务对应第四资源隔离级别,则从所述目标计算节点包括的未被第一资源隔离级别的任务占用的CPU核心中确定所述目标CPU核心;其中,所述目标CPU核心允许绑定其他第二至第四资源隔离级别的计算任务共享所述目标CPU核心。

在一些实施例中,所述为所述待处理任务分配相应的目标CPU核心之后,还包括:

配置所述待处理任务对应的CPU核心算力使用权重、CPU使用量限制、内存使用量限制、磁盘使用量限制以及网络吞吐使用量限制中的一项或多项,使得所述任务进程使用所述目标CPU核心执行所述待处理任务时调度的CPU核心算力、内存资源、磁盘资源以及网络吞吐量满足相应的限制。

在一些实施例中,所述根据所述待处理任务对应的计算资源需求以及各计算节点的CPU核心信息,确定所述待处理任务对应的目标计算节点之前,还包括:

接收各所述计算节点分别上报的CPU核心分配情况。

在一些实施例中,还包括:

所述待处理任务对应最低资源隔离级别时,基于各计算节点的CPU核心占用情况,将所述待处理任务迁移至负载小于所述目标CPU核心的负载的CPU核心上执行,所述负载用于指示CPU核心上绑定的任务数量。

在一些实施例中,还包括:

所述待处理任务执行结束后,将所述目标CPU核心与所述待处理任务对应的任务进程解绑,释放所述目标CPU核心。

第二方面,本公开提供了一种任务管理装置,包括:

接收模块,用于接收任务请求;

资源管理模块,用于基于所述任务请求包含的指示信息确定待处理任务对应的资源隔离级别和计算资源需求;其中,所述资源隔离级别用于指示所述待处理任务对应的中央处理器CPU隔离策略;所述计算资源需求包括所述待处理任务对于CPU核心的需求;

所述资源管理模块,用于根据所述资源隔离级别、所述计算资源需求以及各计算节点上的CPU核心分配情况,为所述待处理任务分配相应的目标CPU核心;以及,启动所述待处理任务对应的任务进程,将所述目标CPU核心与所述任务进程绑定,所述待处理任务对应的任务进程使用所述目标CPU核心执行所述待处理任务。

第三方面,本公开提供了一种电子设备,包括:存储器和处理器;

所述存储器被配置为存储计算机程序指令;

所述处理器被配置为执行所述计算机程序指令,使得所述电子设备实现如第一方面以及第一方面任一项所述的任务管理方法。

第四方面,本公开提供了一种可读存储介质,包括:计算机程序指令;电子设备的至少一个处理器执行所述计算机程序指令,使得所述电子设备实现如第一方面以及第一方面任一项所述的任务管理方法。

第五方面,本公开提供了一种计算机程序产品,电子设备执行所述计算机程序产品,使得所述电子设备实现如第一方面以及第一方面任一项所述的任务管理方法。

本公开提供一种任务管理方法及装置,其中,该方法包括:接收任务请求,基于所述任务请求包含的指示信息确定待处理任务对应的资源隔离级别和计算资源需求,其中,资源隔离级别用于指示待处理任务对应的CPU隔离策略,计算资源需求包括待处理任务对于CPU核心的需求;根据资源隔离级别、所述计算资源需求以及各计算节点上的CPU核心分配情况,为待处理任务分配相应的目标CPU核心,将目标CPU核心与待处理任务对应的任务进程绑定,待处理任务对应的任务进程使用目标CPU核心执行待处理任务。通过任务绑核的方式将任务进程绑定在固定的CPU核心上,且不同任务对应不同资源隔离级别从实现不同任务可以绑定不同CPU核心,减少计算任务之间的干扰,有效实现了资源隔离,提高了资源利用率;此外,绑核能够减少任务进程在CPU核心间的迁移,降低上下文切换开销,提高缓存命中率,减少内存访问损耗,降低延迟。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

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

图1为本公开一实施例提供的任务管理方法的场景架构示意图;

图2为本公开一实施例提供的任务管理方法的流程示意图;

图3为本公开一实施例提供的不同资源隔离级别的计算任务与CPU核心绑定的示意图;

图4为本公开实施例提供的任务管理方法的流程示意图;

图5为本公开实施例提供的计算任务迁移的示意图;

图6为本公开一实施例提供的任务管理装置的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

随着用户需求不断扩展,不同类型的计算任务应运而生。例如,在线计算、实时计算、离线计算、异构计算、交互计算、图计算等等,其中,在线计算主要指在线服务,实时计算主要指以Flink引擎为代表的大数据流式计算任务,离线计算主要指以Mapredouce引擎、Spark引擎为代表的大数据批式计算任务,异构计算主要指CPU、FPGA等异构设备的计算任务。多种复杂计算任务对于运行环境要求不一,例如,在线计算对稳定性要求极高,延迟要求在毫秒级别;实时计算任务对稳定性要求较高,延迟要求在毫秒级别;离线任务不关注延迟,但对吞吐要求高;异构计算包含在乎延迟和在乎吞吐的两种类型计算,但依赖异构设备。

多种复杂计算的运行环境是相互矛盾的,较难在同一个计算节点上运行。例如,一方面,模型训练和大数据批式计算等任务对吞吐有较高的要求,希望尽可能高地利用计算节点的CPU;另一方面,在线服务在整机CPU使用较满时无法及时响应客户端。

目前,通过部署多个集群分别运行不同类型的计算任务来解决多种复杂任务对于运行环境的差异化需求。然而,这会造成严重的资源浪费。除此之外,集群管理系统还会在单机上以资源隔离的方法来隔离不同计算任务。内存、存储、网络等资源通过使用量限制的方式便能够较好地实现隔离,而CPU资源较为复杂,限制CPU使用量是远远不够的。

为了能够更好地隔离CPU,本公开通过“任务分级绑核”的方式实现,其中,任务绑核是指将任务进程绑定在固定的CPU核心上,而不会转交给其他CPU核心,从而保证不同任务使用不同的CPU核心,不同任务绑定不同核心,从而不会相互干扰,实现CPU隔离。其中,任务绑核除了能够实现CPU资源隔离,还能够提高计算性能。具体地,它可以减少运行线程在核心间的迁移开销、降低上下文切换开销,提高缓存命中率,减少内存访问损耗,减少大数据流式任务的延迟,提高离线任务的运行时间。

此外,本公开在任务绑核的基础上通过充分考虑各类型的计算任务的特点,将计算任务进行分类,为不同类别的计算任务配置不同的资源隔离级别,其中,不同资源隔离级别对应不同的CPU隔离策略。CPU隔离策略能够指示计算任务对于所分配的CPU核心的使用策略,如,CPU隔离策略可以指示计算任务对CPU核心是独占,还是在满足指定条件时与其他计算任务共享,CPU隔离策略还可以指示待处理任务对应的CPU核心算力使用权重。

接收到客户端发起的计算任务时,基于计算任务对应的资源隔离级别和相应的计算资源需求为其分配CPU核心,并将计算任务对应的任务进程与分配的CPU核心绑定,通过CPU核心执行任务进程处理计算任务。

接下来将通过下述示例结合场景以及相关附图对本公开提供的任务管理方法进行详细介绍。

图1为本公开一实施例提供的任务管理方法的应用场景架构示意图。参照图1所示,该场景包括:中心服务101和多个单机服务102。中心服务101负责集群节点管理、全局任务管理、资源管理和调度;单机服务102负责具体计算节点的资源和任务管理。

其中,中心服务101中记录了所有单机服务102上报的CPU核心信息,接收到客户端发起的任务时,基于各计算节点的CPU核心信息为任务分配具体的计算节点,并通知计算节点中的单机服务102分配有新计算任务。

其中,CPU核心信息可以包括:计算节点包括的CPU逻辑核心数量、各CPU逻辑核心所属物理核心的信息、CPU逻辑核心所属NUMA以及CPU逻辑核心所属Socket的信息、CPU逻辑核心上所绑定的任务的信息中的一项或多项。其中,NUMA(Non Uniform Memory Access)表示非统一内存访问,是一种多处理器的内存体设计,内存访问时间取决于处理器的内存位置。

在为待处理任务分配CPU核心时,中心服务101可以基于CPU核心信息确定计算节点上的CPU核心分配情况,从可以供分配的CPU核心资源中尽可能将计算任务分配至计算节点中属于同一Socket、同一NUMA的CPU逻辑核心上,尽量减少计算任务在不同Socket以及不同NUMA中切换。

单机服务102感知到任务分配到该计算节点后,启动任务进程,并配置资源隔离。任务结束后单机服务102会释放任务绑定的CPU核心。

单机服务102在为任务配置CPU核心以及释放任务绑定的CPU核心时,均会将向中心服务101上报计算节点上的CPU核心的变化,使得中心服务101能够准确且及时掌握各计算节点的CPU核心分配情况进行合理的资源调度。

图2为本公开一实施例提供的任务管理方法的流程图。参照图2所示,本实施例的方法包括:

S201、接收任务请求,并基于所述任务请求包含的指示信息确定待处理任务对应的资源隔离级别和计算资源需求,其中,资源隔离级别用于指示处理任务对应的CPU隔离策略;计算资源需求包括待处理任务对于CPU核心的需求。

结合图1所示的场景,集群管理系统中的中心节点可以接收用户通过客户端发送的任务请求,任务请求可以用于请求执行一指定的待处理任务,待处理任务可以为在线计算任务、实时计算任务、离线计算任务、异构计算任务等任意类型的计算任务。用户可以通过操作客户端提供的用户界面选择要触发的待处理任务以及向客户端输入计算资源需求以及资源隔离级别,并通过客户端向中心节点发送任务请求,在提交任务请求时,可以指定待处理任务对应的资源隔离级别和计算资源需求。

其中,指示资源隔离级别的信息可以为资源隔离级别对应的级别名称、级别标识或者相应的数字编号等等。指示计算资源需求的信息可以包括用户通过客户端指定的所需CPU核心的数量、CPU核心的类型的信息,还可以包括待处理任务对于内存的需求、对于GPU的需求、对于网络吞吐量的需求等等。

S202、根据资源隔离级别、计算资源需求以及各计算节点上的CPU核心分配情况,为待处理任务分配相应的目标CPU核心。

计算节点上的CPU核心分配情况可以反映计算节点上可供分配的CPU核心资源是否能够满足待处理任务的计算资源需求。其中,中心服务可以根据各单机服务上报的CPU核心信息确定计算节点上的CPU资源分配情况,再对比可供分配的CPU核心资源是否满足计算资源需求(如对比可供分配的CPU核心数量是否大于或等于用户通过客户端指定的所需的CPU核心数量),从可分配的CPU核心资源满足计算资源需求的计算节点中确定一个或多个计算节点为待处理任务对应的目标计算节点。之后,中心服务可以向目标计算节点中的单机服务发送通知消息,通知消息中可以包括指示任务分配的信息以及待处理任务的资源隔离级别和计算资源需求的信息。单机服务接收到通知消息后,可根据资源隔离级别以及计算资源需求为待处理任务确定目标CPU核心,为目标CPU核心添加“已分配”标签以及待处理任务的标签。

其中,待处理任务的标签可以但不限于为待处理任务对应的ID、名称等等。

S203、启动待处理任务对应的任务进程,将目标CPU核心与所述任务进程绑定,待处理任务对应的任务进程使用目标CPU核心执行待处理任务。

目标计算节点接收到通知消息时,感知到任务分配,会为分配的待处理任务启动任务进程并配置CPU核心资源;在分配了目标CPU核心后,会将任务进程与目标CPU核心绑定,之后便可以任务进程使用目标CPU核心执行客户端提交的待处理任务。

其中,针对待处理任务可以启动一个或者多个任务进程,每个任务进程下可以执行一个或多个线程,若启动多个任务进程时,可以将每个任务进程与目标CPU核心绑定。

本实施例,通过任务绑核的方式将任务进程绑定在固定的CPU核心上,且不同级别的任务绑定不同范围的CPU核心,减小计算任务之间的干扰,有效实现了资源隔离,提高了资源利用率;此外,绑核能够减少任务进程在CPU核心间的迁移,降低上下文切换开销,提高缓存命中率,减少内存访问损耗,降低延迟。

在一个具体的实施例中,假设,集群支持四种资源隔离级别的计算任务,每种资源隔离级别可以包括一种或多种类型的计算任务,通过四种资源隔离级别来定义任务绑核以及CPU核心算力使用权重等隔离策略,从而保证在同一个集群,同一个计算节点上不同类型的计算任务的运行环境,并兼顾不同类型的计算任务的性能需求和集群利用率要求。

其中,四种资源隔离级别示例性如下所示:

1、第一资源隔离级别(也可以称为ALONE级别):独占分配的CPU核心,且不与其他任何计算任务共享CPU核心。

2、第二资源隔离级别(也可以称为FIXED级别):独占分配的CPU核心,可以与指定资源隔离级别的计算任务共享CPU核心。

3、第三资源隔离级别(也可称为NORMAL级别):彼此间共享除第一和第二资源隔离级别的计算任务占用的CPU核心之外剩下所有的CPU核心。

4、第四资源隔离级别(也可以称为MIXED级别):彼此间共享除第一资源隔离级别的计算任务占用的CPU核心之外剩下所有的CPU核心。

其中,第一至第三资源隔离级别的计算任务分别对应的CPU核心算力使用权重与计算任务对应的CPU核心需求成正比(倍数)关系,第四资源隔离级别的计算任务对于CPU核心算力使用权重最低。其中,多个计算任务共享CPU核心时,可按照各计算任务申请的CPU核心的数量计算计算任务对应的CPU核心算力使用权重,其中,CPU核心算力使用权重与申请的CPU核心成正比(倍数)关系。例如,用户提交了一个作业,一个作业包括多个任务,任务1申请1核CPU,任务2申请2核CPU,任务1和任务2共享CPU核心,则任务1对应的CPU核心算力使用权重为1/(1+2),任务2对应的CPU核心算力使用权重为2/(1+2),若有更多的任务共享核心,则按照各计算任务对应的CPU核心需求计算各自对应的CPU核心算力使用权重。

因此,第四资源隔离级别的计算任务是定位于低优先级的混部任务,使用其他计算任务剩余的CPU资源。当多个计算任务使用同一个CPU核心时,会优先将CPU核心算力基于使用权重分配给不同的计算任务。第四资源隔离级别的计算任务的CPU核心算力使用权重最低,其与第二和/或第三资源隔离级别的计算任务混跑时,能够拿到的CPU核心算力较少,不会对混跑的高资源隔离级别的计算任务产生影响。

图3为本公开一实施例提供的任务绑核的结构示意图。假设用户启动了计算任务1至11,其中,计算任务1和计算任务2属于第一资源隔离级别,计算任务3至5属于第二资源隔离级别,计算任务6至8属于第三资源隔离级别。有16个CPU核心可分配。请参阅图3所示,计算任务1和计算任务2分别与CPU核心1和2绑定,且独占各自对应的CPU核心;类似地,计算任务3和计算任务4分别与CPU核心3和4绑定,且独占各自对应的CPU核心,计算任务5所需的CPU核心数量为2,因此,计算任务5同时与CPU核心5和6绑定,由CPU核心5和6共同执行计算任务5;计算任务6至8彼此之间共享CPU核心7至12,在图3所示实施例中,计算任务6至8不占用CPU核心13至16的资源,因此,CPU核心13至16可视为未分配状态。假设有MIXED级别的计算任务9至11启动,则计算任务9至11可以与计算任务3至8共享CPU核心3至16上的资源,应理解,计算任务9至11对于CPU核心3至16的CPU核心算力使用权重低于混跑的计算任务,以尽量不影响混跑的其他计算任务的执行。

为了更加清楚本公开涉及的“共享”CPU核心的含义,以本实施例中计算任务6至8彼此之间共享CPU核心7至12为例进行举例说明,假设计算任务6至8分别启动一个任务进程,将计算任务6对应的任务进程分别与CPU核心7至12绑定,将计算任务7对应的任务进程分别与CPU核心7至12绑定,将计算任务8对应的任务进程分别与CPU核心7至12绑定,通过调度可以实现不同计算任务分时复用同一个CPU核心。计算任务6至8分别对应的CPU核心算力使用权重基于前述示例的方式,基于计算任务各自申请的CPU核心数量进行计算。

在图3所示实施例中,所有参与共享的CPU核心的数量等于相应计算任务所需的CPU核心总数。例如,计算任务6至8彼此之间共享CPU核心7至12,假设计算任务6的计算资源需求为1个CPU核心,计算任务7的计算资源需求为2个CPU核心,计算任务8的计算资源需求为3个CPU核心,计算资源需求总量为6个核心,因此,分配6个核心由计算任务6至8共享。若参与共享的CPU核心的数量小于相应计算任务所需的CPU核心总数,可能会出现资源不足的情况,导致计算任务处理效率较低,因此,在进行CPU核心资源分配时,需保证所有参与共享的CPU核心的数量等于相应计算任务所需的CPU核心总数。

结合图3所示实施例,应理解,通过上述任务分级绑核的方式进行任务管理,能够保证同一个计算节点上可以同时运行多种类型的计算任务,既能满足计算任务对于性能的需求,计算任务之间也互不干扰,有利于集群资源整体利用率的提升。

假设,集群支持在线服务、大数据流式计算任务、模型训练任务、高中低三种优先级的大数据批式计算任务,且集群支持4种资源隔离级别(如前文所示)。

其中,ALONE级别的计算任务绑定到具体的CPU核心且独占CPU核心,适用于在线服务等对稳定性要求极高的计算任务。

其中,FIXED级别的计算任务绑定到具体的CPU核心上,可以与MIXED级别的计算任务混跑,适用于希望通过任务绑核提高性能,但对稳定性相对要求低于ALONE级别的计算任务的其他计算任务,比如,大数据流式计算任务、模型训练任务、高优先级的大数据批式计算任务等等。在FIXED级别的计算任务对于CPU资源使用低峰时,由混跑的MIXED级别的计算任务填补资源空缺,从而保证集群整体资源利用率。

NORMAL级别的计算任务不绑定到具体CPU核心,适用于对于运行环境没有过多要求,但又需要保证CPU核心算力的普通计算任务,例如中低优先级的大数据批式计算任务。

图4为本公开另一实施例提供的任务管理方法的流程图。请参照图4所示,包括:

S401、接收任务请求,并基于所述任务请求包含的指示信息确定待处理任务对应的资源隔离级别和计算资源需求,其中,资源隔离级别用于指示处理任务对应的CPU隔离策略;计算资源需求包括待处理任务对于CPU核心的需求。

S402、根据资源隔离级别、计算资源需求以及各计算节点上的CPU核心分配情况,为待处理任务分配相应的目标CPU核心。

S403、启动待处理任务对应的任务进程,将目标CPU核心与所述任务进程绑定。

本实施例步骤S401至步骤S403分别与图2所示实施例步骤S201至步骤S203类似,可参照图2所示实施例的详细描述,简明起见,此处不再赘述。

S404、配置待处理任务对应的CPU核心算力使用权重、CPU使用量限制、内存使用量限制、磁盘使用量限制以及网络吞吐使用量限制中的一项或多项。

除了任务分级绑核之外,不同类型的计算任务还需要限制CPU核心算力使用权重、CPU使用量、内存使用量、磁盘使用量以及网络吞吐使用量等等,从而实现全方面的资源隔离,更好地保证不同类型的计算任务在计算节点上同时运行。

待处理任务对应的CPU核心算力使用权重、CPU使用量限制、内存使用量限制、磁盘使用量限制以及网络吞吐使用量限制信息,可以由用户通过客户端在提交任务请求时指定,也可以由集群系统根据待处理任务的资源隔离级别自动确定,其中,自动确定可以但不限于通过查询数据表的方式实现,数据表中可以记录不同资源隔离级别与CPU核心算力使用权重、CPU使用量限制、内存使用量限制、磁盘使用量限制以及网络吞吐使用量限制信息之间的映射关系。

S405、待处理任务对应的任务进程使用目标CPU核心执行待处理任务,且所述目标CPU核心执行待处理任务时调度的CPU核心算力、内存资源、磁盘资源以及网络吞吐量满足相应的限制。

本实施例通过配置上述限制条件,能够更好地保证多个计算任务在同一计算节点中运行时的资源隔离,保证各计算任务可靠地执行,且最大限度提升计算节点的资源利用率。

需要说明的是,可以按照本实施例所示的步骤顺序执行,也可以先执行步骤S404再执行步骤S403,或者,也可以在为待处理任务分配目标CPU核心后,并行执行步骤S403以及步骤S404,本公开对于执行先后顺序不做限定。

可选地,在图4实施例的基础上,还包括:

S406、待处理任务执行结束后,将目标CPU核心与待处理任务对应的任务进程解绑,释放目标CPU核心。

待处理任务执行结束后,通过单机服务将目标CPU核心的标签由已分配标签修改为未分配标签,且删除待处理任务的标签,从而释放目标CPU核心。通过在任务执行结束之后及时释放资源,能够保证集群资源有效利用。

此外,单机服务释放目标CPU核心后,还可以向中心服务及时上报最新的CPU核心信息,保证中心服务记录的各计算节点的CPU核心信息与实际情况保持一致。

在前述图2至图4所示实施例的基础上,集群还支持指定资源隔离级别的计算任务在CPU核心间迁移,从而充分利用集群中计算节点的计算资源。

一些实施例中,中心服务可以基于目标计算节点的CPU核心信息确定满足迁移条件时,向单机服务发送迁移指令,指示单机服务将指定资源隔离级别的计算任务迁移至负载小于当前绑定的CPU核心上。

另一些实施例中,也可以由计算节点基于自身的CPU核心信息确定满足迁移条件时执行计算任务的迁移。采用上述任一方式执行迁移后单机服务向中心服务同步迁移信息,迁移信息可以包括迁移后的CPU核心的标识以及计算任务的标识。

示例性地,指定资源隔离可以为最低资源隔离级别,如MIXED级别,由于最低资源隔离级别对于CPU核心权利使用权重最低,灵活的迁移能够保证为最低资源隔离级别的计算任务尽可能调度更多的计算资源。

此外,在调度时,可根据可迁移的CPU核心的负载情况,按照负载由低到高的顺序进行排序,优先将计算任务迁移至负载最低的CPU核心。以MIXED级别的计算任务为例,优先将计算任务迁移至空闲CPU核心,其次与NORMAL级别的计算任务混跑,再次与FIXED级别的计算任务混跑。例如,参照图5所示实施例,计算任务5和计算任务9在CPU核心5和6中混跑,计算任务6至8与计算任务10、11在CPU核心7至12中混跑,则将计算任务9以及计算任务10、11迁移至空闲的CPU核心13至16,计算任务9至11共享CPU核心13至16,从而提高了空闲CPU资源的利用率,也提高了计算任务的处理效率。

图6为本公开一实施例提供的任务管理装置的结构示意图。请参阅图6所示,本实施例的装置600包括:

接收模块601,用于接收任务请求。

资源管理模块602,用于基于所述任务请求包括指示信息确定待处理任务对应的资源隔离级别和计算资源需求;其中,所述资源隔离级别用于指示所述待处理任务对应的CPU隔离策略;所述计算资源需求包括所述待处理任务对于CPU核心的需求。

资源管理模块602,用于根据所述资源隔离级别、所述计算资源需求以及各计算节点上的CPU核心分配情况,为所述待处理任务分配相应的目标CPU核心;以及,启动所述待处理任务对应的任务进程,将所述目标CPU核心与所述任务进程绑定,待处理任务对应的任务进程使用所述目标CPU核心执行所述待处理任务。

在一些实施例中,资源管理模块602,具体用于基于各计算节点上的CPU核心分配情况,确定可分配的CPU核心资源满足所述计算资源需求的计算节点为所述待处理任务对应的目标计算节点;并控制目标计算节点根据所述资源隔离级别、所述计算资源需求以及目标计算节点对应的CPU核心分配情况,从所述目标计算节点包括的CPU核心中确定满足相应CPU隔离策略以及计算资源需求的所述目标CPU核心;为所述目标CPU核心添加已分配标签以及所述待处理任务对应的标签,以将所述目标CPU核心分配给所述待处理任务。

在一些实施例中,资源管理模块602,具体用于:

若所述待处理任务为第一资源隔离级别,则从所述目标计算节点包括空闲CPU核心中确定所述目标CPU核心;其中,所述待处理任务独占所述目标CPU核心;

若所述待处理任务为第二资源隔离级别,则从所述目标计算节点包括空闲CPU核心或者绑定了指定资源隔离级别的任务的CPU核心中确定所述目标CPU核心;所述待处理任务独占所述目标CPU核心或者与所述指定资源隔离级别的任务共享所述目标CPU核心;

若所述待处理任务对应第三资源隔离级别,则从所述目标计算节点包括的未被第一资源隔离级别和第二资源隔离级别的任务占用的CPU核心中确定所述目标CPU核心;其中,所述目标CPU核心允许绑定其他第三资源隔离级别的计算任务;

若所述待处理任务对应第四资源隔离级别,则从所述目标计算节点包括的未被第一资源隔离级别的任务占用的CPU核心中确定所述目标CPU核心;其中,所述目标CPU核心允许绑定其他第二至第四资源隔离级别的计算任务共享所述目标CPU核心。

在一些实施例中,为待处理任务分配相应的目标CPU核心之后,资源管理模块602,还用于根据所述待处理任务对应的资源隔离级别为所述待处理任务配置CPU核心算力使用权重、CPU使用量限制、内存使用量限制、磁盘使用量限制以及网络吞吐使用量限制中的一项或多项,使得所述任务进程使用所述目标CPU核心执行所述待处理任务时调度的CPU核心算力、内存资源、磁盘资源以及网络吞吐量满足相应的限制。

在一些实施例中,资源管理模块602,还用于获取各计算节点分别上报的CPU核心分配情况。

在一些实施例中,资源管理模块602,还用于:在所述待处理任务对应最低资源隔离级别时,基于各计算节点的CPU核心分配情况,将所述待处理任务迁移至负载小于所述目标CPU核心的负载的CPU核心上执行,所述负载用于指示CPU核心上绑定的任务数量。

在一些实施例中,资源管理模块602,还用于在所述待处理任务执行结束后,将所述目标CPU核心与所述待处理任务对应的任务进程解绑,释放所述目标CPU核心。

本实施例提供的任务管理装置用于执行前述任一方法实施例的技术方案,其实现方式与前述方法实施例类似,可参照前述方法实施例的详细描述,简明起见,此处不再赘述。

示例性地,本公开提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中一个或多个计算机程序被存储在存储器中;一个或多个处理器在执行一个或多个计算机程序时,使得电子设备实现前文实施例的任务管理方法。

示例性地,本公开提供一种芯片系统,芯片系统应用于包括存储器和传感器的电子设备;芯片系统包括:处理器;当处理器执行前文实施例的任务管理方法。

示例性地,本公开提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器使得电子设备执行时实现前文实施例的任务管理方法。

示例性地,本公开提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行前文实施例的任务管理方法。

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

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

相关技术
  • 一种存储集群的任务管理方法及装置
  • 任务管理方法及装置
  • 任务数据管理方法、装置、计算机设备和存储介质
  • 定时任务管理方法、装置、计算机设备及存储介质
  • 空调机管理装置、热源设备管理装置、空调机管理方法以及热源设备管理方法
  • 任务管理方法、任务管理装置、半导体集成电路、电子装置以及任务管理系统
  • 任务管理方法、任务管理装置、半导体集成电路、电子装置以及任务管理系统
技术分类

06120115933409