CN111857988B - 一种基于任务管理***的容器任务调度方法及装置 - Google Patents
一种基于任务管理***的容器任务调度方法及装置 Download PDFInfo
- Publication number
- CN111857988B CN111857988B CN202010566927.7A CN202010566927A CN111857988B CN 111857988 B CN111857988 B CN 111857988B CN 202010566927 A CN202010566927 A CN 202010566927A CN 111857988 B CN111857988 B CN 111857988B
- Authority
- CN
- China
- Prior art keywords
- task
- individual fitness
- value
- resource
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于任务管理***的容器任务调度方法及装置,该方法包括:初始化任务管理***的参数,并设置所述任务管理***进入等待状态;在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级;根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件;若满足,则将所述每个待被布置任务布置到其对应的资源中。本申请解决了现有技术中任务调度过程资源不能被合理分配的技术问题。
Description
技术领域
本申请涉及任务调度技术领域,尤其涉及一种基于任务管理***的容器任务调度方法及装置。
背景技术
随着虚拟化技术的不断发展,容器技术被广泛的应用到数据处理任务调度过程中,容器技术主要是将多种应用连同其依赖环境整体独立打包,快速部署到生产环境中,形成高密度的微服务,大幅提高设备的资源利用率。但是,当容器应用的密度较大时,容器应用任务合理分配到后台***成为任务调度的一个重要环节。
为了使得容器应用任务合理分配到后台***,目前,主要是采用调度策略对大规模容器应用任务的调度以及分配,例如,调度策略包括先来先服务(First Come FirstServed,FCFS)、短时间作业优先(Shortest Processing Time,SPT)、首次适应(FirstFit)、最佳适应(Best Fit)等。而任务调度策略中通常采用任务优先级来调整任务在任务队列中的位置,进而使得任务管理***根据任务队列对任务进行调度。但是,目前的调度策略主要是按照预设的应用场景进行设定的,当应用场景设发生变化时,调度策略并不能根据实际情况进行自适应调整,进而使得待被布置的容器应用任务不能分配到空闲资源中,任务调度过程中存在的饥饿问题,导致任务调度过程中资源不能被合理分配。
发明内容
本申请解决的技术问题是:针对现有技术中任务调度过程资源不能被合理分配的问题,本申请提供了一种基于任务管理***的容器任务调度方法及装置。本申请实施例所提供的方案中,在新任务被提交或任一任务被完成时,触发计算一次当前至少一个待被布置任务的优先级,并根据优先级对待被布置任务进行排序,然后依次为每个待被布置任务分配资源,即任务管理***可根据实际情况进行自适应资源调度,避免了由于任务调度过程中资源浪费,进而使得任务调度过程中资源被合理分配。
第一方面,本申请实施例提供一种基于任务管理***的容器任务调度方法,该方法包括:
初始化任务管理***的参数,并设置所述任务管理***进入等待状态;
在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级;
根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件;
若满足,则将所述每个待被布置任务布置到其对应的资源中。
本申请实施例所提供的方案中,任务管理***处于等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级,并根据优先级将至少一个待被布置任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件,并在待被布置任务对应的资源满足预设布置条件,则将所述每个待被布置任务布置到其对应的资源中。因此,本申请实施例所提供的方案中,在新任务被提交或任一任务被完成时,触发计算一次当前至少一个待被布置任务的优先级,并根据优先级对待被布置任务进行排序,然后依次为每个待被布置任务分配资源,即任务管理***可根据实际情况进行自适应资源调度,避免了由于任务调度过程中资源浪费,进而使得任务调度过程资源被合理分配。
可选地,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级,包括:
确定所述待被布置的至少一个任务中每个所述待被布置任务的任务信息,根据所述任务信息确定所述每个待被布置任务所需的资源量、重要度、已等待时长、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数;
根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值;
根据所述权重值以及所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数计算所述每个待被布置任务的优先级。
可选地,根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值,包括:
设置每个所述权重值的取值范围,以及根据所述每个权重值的取值范围确定不同权重值下的任务序列,得到多个任务序列;
计算所述多个任务序列中每个任务序列对应的个体适应度值,判断是否存在任一所述个体适用度值不小于预设阈值;
若不存在,则选择出第一个体适用度值,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,直到重新计算的个体适应度值不小于预设阈值为止,并确定所述重新计算的个体适应度值所对应的权重值,其中,所述第一个体适应度值是指当前最大的个体适应度值。
可选地,计算所述多个任务序列中每个任务序列对应的个体适应度值,包括:
计算所述每个任务序列对应的资源利用率以及所述任务管理***的公平度;
根据预设的资源利用率和所述任务管理***的公平度的权重值以及所述资源利用率和所述任务管理***的公平度,计算所述每个任务序列对应的个体适应度值。
可选地,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,包括:
计算所述第一个体适用度值的交叉概率是否在预设的取值范围内;
若在,则从所述每个任务序列对应的个体适应度值中随机选择一个第二个体适应度值,并确定所述第一个体适应度值所对应的第一权重值以及所述第二个体适应度值对应的第二权重值,根据预设的交叉算子随机将所述第一权重值中部分或全部参数与所述第二权重值进行交叉替换,得到替换后的第一权重值;
根据所述替换后的第一权重值重新计算所述个体适应度值。
可选地,若所述第一个体适用度值的交叉概率不在预设的取值范围内,则根据预设的变异算子随机重新生成所述第一权重值中部分或全部参数,得到重新生成的第一权重值;
根据所述重新生成的第一权重值重新计算所述个体适应度值。
可选地,计算当前待被布置的至少一个任务的优先级之前,还包括:
若检测到新任务被提交时,根据预设的过滤器判断所述新任务是否为预设的目标任务;
若是,则根据预设的处理规则执行处理操作。
可选地,所述预设的布置条件,包括:
所述每个待被布置任务所对应的资源未被占用;和
所述每个待被布置任务所对应的资源中剩余资源量满足需求。
可选地,若所述待被布置任务对应的资源不满足预设布置条件,则判断资源池中是否存在任一资源满足所述预设布置条件;
若不存在,则将所述资源池中可用资源进行预占用标记;
否则,判断所述待被布置的至少一个任务是否被全部布置;
若未被全部布置,则重新对所述任务序列中下一个任务进行布置,直到所述待被布置的至少一个任务被全部布置或所述资源池中的所有资源被全部占用为止。
第二方面,本申请实施例提供了一种基于任务管理***的容器任务调度装置,该装置包括:
初始化单元,用于初始化任务管理***的参数,并设置所述任务管理***进入等待状态;
计算单元,用于在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级;
判断单元,用于根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件;
处理单元,用于若满足,则将所述每个待被布置任务布置到其对应的资源中。
可选地,所述计算单元,具体用于:
确定所述待被布置的至少一个任务中每个所述待被布置任务的任务信息,根据所述任务信息确定所述每个待被布置任务所需的资源量、重要度、已等待时长、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数;
根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值;
根据所述权重值以及所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数计算所述每个待被布置任务的优先级。
可选地,所述计算单元,具体用于:
设置每个所述权重值的取值范围,以及根据所述每个权重值的取值范围确定不同权重值下的任务序列,得到多个任务序列;
计算所述多个任务序列中每个任务序列对应的个体适应度值,判断是否存在任一所述个体适用度值不小于预设阈值;
若不存在,则选择出第一个体适用度值,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,直到重新计算的个体适应度值不小于预设阈值为止,并确定所述重新计算的个体适应度值所对应的权重值,其中,所述第一个体适应度值是指当前最大的个体适应度值。
可选地,所述计算单元,具体用于:
计算所述每个任务序列对应的资源利用率以及所述任务管理***的公平度;
根据预设的资源利用率和所述任务管理***的公平度的权重值以及所述资源利用率和所述任务管理***的公平度,计算所述每个任务序列对应的个体适应度值。
可选地,所述计算单元,具体用于:
计算所述第一个体适用度值的交叉概率是否在预设的取值范围内;
若在,则从所述每个任务序列对应的个体适应度值中随机选择一个第二个体适应度值,并确定所述第一个体适应度值所对应的第一权重值以及所述第二个体适应度值对应的第二权重值,根据预设的交叉算子随机将所述第一权重值中部分或全部参数与所述第二权重值进行交叉替换,得到替换后的第一权重值;
根据所述替换后的第一权重值重新计算所述个体适应度值。
可选地,所述计算单元,具体用于:若所述第一个体适用度值的交叉概率不在预设的取值范围内,则根据预设的变异算子随机重新生成所述第一权重值中部分或全部参数,得到重新生成的第一权重值;
根据所述重新生成的第一权重值重新计算所述个体适应度值。
可选地,所述判断单元,还用于:
若检测到新任务被提交时,根据预设的过滤器判断所述新任务是否为预设的目标任务;
若是,则根据预设的处理规则执行处理操作。
可选地,所述预设的布置条件,包括:
所述每个待被布置任务所对应的资源未被占用;和
所述每个待被布置任务所对应的资源中剩余资源量满足需求。
可选地,所述判断单元,具体用于若所述待被布置任务对应的资源不满足预设布置条件,则判断资源池中是否存在任一资源满足所述预设布置条件;
若不存在,则将所述资源池中可用资源进行预占用标记;
否则,判断所述待被布置的至少一个任务是否被全部布置;
若未被全部布置,则重新对所述任务序列中下一个任务进行布置,直到所述待被布置的至少一个任务被全部布置或所述资源池中的所有资源被全部占用为止。
第三方面,本申请提供一种计算机设备,该计算机设备,包括:
存储器,用于存储至少一个处理器所执行的指令;
处理器,用于执行存储器中存储的指令执行第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面所述的方法。
附图说明
图1为本申请实施例所提供的一种基于任务管理***的容器任务调度方法的流程示意图;
图2为本申请实施例所提供的一种通过遗产算法计算权值的流程示意图;
图3为本申请实施例所提供的一种基于任务管理***的容器任务调度装置的结构示意图;
图4为本申请实施例所提供的一种计算机设备的结构示意图。
具体实施方式
以下结合说明书附图对本申请实施例所提供的一种基于任务管理***的容器任务调度方法做进一步详细的说明,该方法具体实现方式可以包括以下步骤(方法流程如图1所示):
步骤101,初始化任务管理***的参数,并设置所述任务管理***进入等待状态。
具体的,在本申请实施例所提供的方案中,任务管理***可以是作业管理***(Protable Batch System,PBS),也可以是其他的管理***,在此不做限定。任务管理***可以对创建的多个容器任务进行管理。
为了使得任务管理***对多容器任务进行管理,需要对任务管理***的参数进行初始化,在本申请实施例所提供的方案中,初始化任务管理***的参数的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能实现的方式中,初始化任务管理***的参数,包括:获取所述任务管理***的历史数据,从所述历史数据中提取***参数、用户列表数据、任务列表数据以及资源列表数据;根据所述***参数、所述用户列表数据、所述任务列表数据以及所述资源列表数据对***参数、用户列表、任务列表以及资源列表进行初始化。
具体的,资源列表数据中包括资源队列,其中,所述资源队列用于存储所有可用的计算资源以及所述可用的计算资源的资源状态。用户列表数据中包括用户信息,其中,所述用户信息包括实体用户、应用本体等在内的所有任务提交者信息,以及所述任务提交者的历史资源使用量以及任务等待时间。任务列表数据包括任务信息,其中,任务信息包括任务提交时间、重要度,所需资源以及等待时间等。
步骤102,在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级。
在本申请实施例所提供的方案中,任务管理***处于等待状态下,有两类触发事件可以触发任务管理***由等待状态转变为任务布置状态,其中,两类触发事件包括新任务被提交或任一任务被完成,例如,新任务被提交对应于PBS***的queuejob事件,任一任务被完成对应于PBS***的execjob_end事件。
进一步,在本申请实施例所提供的方案中,若检测到到新任务被提交或任一任务被完成时,任务管理***会计算当前待被布置的至少一个任务的优先级,具体的,计算当前待被布置的至少一个任务的优先级的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能的实现方式中,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级,包括:
确定所述待被布置的至少一个任务中每个所述待被布置任务的任务信息,根据所述任务信息确定所述每个待被布置任务所需的资源量、重要度、已等待时长、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数;
根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值;
根据所述权重值以及所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数计算所述每个待被布置任务的优先级。
具体的,由于本申请实施例所提供的方案中,待被布置任务的用户是指被布置在容器里的应用程序。触发任务管理***计算待被布置任务的优先级的事件有两种,为了便于理解下面分别对每种事件下,任务管理***计算待被布置任务的优先级的过程进行简要介绍。
一、检测到有新任务被提交
当用户向任务管理***提交新任务时,触发任务管理***运行hook脚本文件,并将该新任务添加到任务列表中以及保存该新任务的基本信息,其中,基本信息包括任务创建时间、任务ID以及提交任务的用户信息等。
进一步,用户在提交新任务时,在提交新任务的指令、信令或数据帧上携带有任务所需的资源量以及已等待时长等信息。根据资源池中的资源信息建立任务与资源之间的映射关系,以及根据提交任务的用户信息建立用户与任务之间的映射关系,其中,用户与任务之间的映射关系包括用户已使用***资源量以及所述用户正在执行或等待执行的任务总数等信息。
进一步,任务管理***需要计算至少一个待被布置任务的优先级,在本申请实施例所提供的方案中,计算至少一个待被布置任务的优先级的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能实现的方式中,计算当前待被布置的至少一个任务的优先级,包括:
根据如下公式计算至少一个待被布置任务的优先级:
Pi=A1*Ci+A2*Ti-A3*Si-A4*Ni+A5*Ii
其中,Pi表示第i个待被布置任务的优先级;Ci表示第i个待被布置任务所需的资源量;Ti表示第i个待被布置任务已等待时长;Si表示提交第i个待被布置任务的用户已使用***资源量;Ni表示提交第i个待被布置任务的用户当前正在被执行或等待执行的任务总数;Ii表示第i个待被布置任务的重要度;A1、A2、A3、A4、A5分别表示Ci、Ti、Si、Ni、Ii的权重值。
二、检测到任一任务被完成
当任务管理***检测到任务列表中任一任务被完成时,根据上述待被布置任务的优先级计算公式计算至少一个待被布置任务的优先级,具体过程与上述检测到新任务被提交中的相同在此不做赘述。
进一步,不管是检测到新任务被提交,还是检测到任一任务被完成,任务管理***为了计算待被布置任务的优先级,都需要确定Ci、Ti、Si、Ni、Ii的权重值,即A1、A2、A3、A4、A5。由于容器应用种类繁多,其工作热度也会不断变化。因此,为了提高鲁棒性以及适用性,在计算待被布置任务的优先级时需要动态优化Ci、Ti、Si、Ni、Ii的权重值。在本申请实施例所提供的方案中,确定A1、A2、A3、A4、A5的方式有多种,一种较佳的方式为根据遗传算法计算,A1、A2、A3、A4、A5,其中,遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的计算模型。它主要是通过模拟自然进行过程搜索最优解的方法。
为了便于理解,下面对通过遗产算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值的过程进行简要介绍。参见图2为本申请实施例提供的一种通过遗产算法计算权值的流程示意图。
步骤201,设置每个所述权重值的取值范围,以及根据所述每个权重值的取值范围确定不同权重值下的任务序列,得到多个任务序列。
例如,将A1的取值范围设置为[-1000,1000],将A2的取值范围设置为[0,1000],A3的取值范围设置为[0,1000],A4的取值范围设置为[0,1000],A5的取值范围设置为[1,1000]。
进一步,在设置每个所述权重值的取值范围之后,根据优先级计算公式分别计算不同权重值下的任务序列。
步骤202,计算所述多个任务序列中每个任务序列对应的个体适应度值,判断是否存在任一所述个体适用度值不小于预设阈值。
在本申请实施例所提供的方案中,任务管理***计算出不同权重值下的任务序列之后,再分别计算每个任务序列对应的个体适应度值。具体的,计算每个任务序列对应的个体适应度值的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能实现的方式中,计算所述多个任务序列中每个任务序列对应的个体适应度值,包括:计算所述每个任务序列对应的资源利用率以及所述任务管理***的公平度;根据预设的资源利用率和所述任务管理***的公平度的权重值以及所述资源利用率和所述任务管理***的公平度,计算所述每个任务序列对应的个体适应度值。
具体的,在本申请实施例所提供的方案中,分别通过如下公式计算每个任务序列对应的资源利用率和所述任务管理***的公平度:
其中,ηs表示每个任务序列对应的资源利用率;ti表示在预设的统计时间段内所运行的每个任务的执行时间;tj表示在预设的统计时间段内活跃过的各节点的运行时间;表示每个正在执行的任务所需的资源数;表示每个活跃的计算设备可用的资源数;F表示所述任务管理***的公平度;D表示在预设的统计时间段内使用过所述任务管理***的用户数;Wi s表示在预设的统计时间段内各用户的平均等待时长;Ws表示所述任务管理***的平均等待时长。
进一步,任务管理***在确定出每个任务序列对应的资源利用率和所述任务管理***的公平度之后,根据如下公式计算每个任务序列对应的个体适应度值:
QS=a1*ηs+a2*F
其中,QS表示个体适应度值;a1表示资源利用率的权重值,一般设置为0.9;a2表示公平度的权重值,一般设置为0.1。
进一步,在数据库中预设着个体适应度值的阈值,任务管理***在确定出每个任务对应的个体适应度值之后,需要判断是否存在所述个体适用度值不小于预设阈值。
步骤203,若不存在,则选择出第一个体适用度值,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,直到重新计算的个体适应度值不小于预设阈值为止,并确定所述重新计算的个体适应度值所对应的权重值,其中,所述第一个体适应度值是指当前最大的个体适应度值。
在本申请实施例所提供的方案中,若不存在任一所述个体适用度值不小于预设阈值,则从当前确定出的个体适应度值中选择出第一个体适应度值,其中,第一个体适应度值是指当前最大的个体适应度值,然后根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值。具体的重新计算个体适应度值的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能实现的方式中,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,包括:计算所述第一个体适用度值的交叉概率是否在预设的取值范围内;若在,则从所述每个任务序列对应的个体适应度值中随机选择一个第二个体适应度值,并确定所述第一个体适应度值所对应的第一权重值以及所述第二个体适应度值对应的第二权重值,根据预设的交叉算子随机将所述第一权重值中部分或全部参数与所述第二权重值进行交叉替换,得到替换后的第一权重值;根据所述替换后的第一权重值重新计算所述个体适应度值。
在一种可能实现方式中,若所述第一个体适用度值的交叉概率不在预设的取值范围内,则根据预设的变异算子随机重新生成所述第一权重值中部分或全部参数,得到重新生成的第一权重值;根据所述重新生成的第一权重值重新计算所述个体适应度值。
步骤103,根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件。
具体的,在本申请实施例所提供的方案中,任务管理***在计算出每个待被布置任务的优先级之后,根据优先级从高到低的顺序将至少一个待被布置任务进行排序,得到一任务序列,然后,在该任务序列中按照从前到后的顺序依次逐个判断待被布置任务对应的资源是否满足预设的布置条件。
在一种可能实现方式中,所述预设的布置条件,包括:
所述每个待被布置任务所对应的资源未被占用;和
所述每个待被布置任务所对应的资源中剩余资源量满足需求。
步骤104,若满足,则将所述每个待被布置任务布置到其对应的资源中。
进一步,在本申请实施例所提供的方案中,在步骤103之后,还包括如下几个步骤:
步骤105,若所述待被布置任务对应的资源不满足预设布置条件,则判断资源池中是否存在任一资源满足所述预设布置条件。
步骤106,若不存在,则将所述资源池中可用资源进行预占用标记。
步骤107,否则,判断所述待被布置的至少一个任务是否被全部布置。
步骤108,若未被全部布置,则重新对所述任务序列中下一个任务进行布置,直到所述待被布置的至少一个任务被全部布置或所述资源池中的所有资源被全部占用为止。
进一步,在步骤107之后,还包括步骤109:若所述待被布置的至少一个任务被全部布置,则本次任务布置过程结束。
在本申请实施例所提供的方案中,若检测任一待被布置的任务所对应的资源被占用和/或所对应的资源中剩余资源量不满足需求时,检测资源池中下一个资源是否满足预设布置条件,若资源池中所有的资源都不满足预设布置条件,则将所述待被布置任务对应的资源进行预占用标记,例如,将所述待被布置任务对应的资都标记预占用为1,即表示此次任务布置的后续过程中不会把任何任务放置到该资源中。
进一步,若资源池中存在任一资源满足预设布置条件,则判断至少一个待被布置任务是否被全部布置,若未被全部布置,则重新对所述任务序列中下一个任务进行布置,直到所述待被布置的至少一个任务被全部布置或所述资源池中的所有资源被全部占用为止。若资源池中的所有资源被全部占用,则本次任务布置结束。
进一步,为了提高方案的适用性,在本申请实施例所提供的方案中,所述方法还包括:若检测到新任务被提交时,根据预设的过滤器判断所述新任务是否为预设的目标任务;若是,则根据预设的处理规则执行处理操作。
本申请实施例所提供的方案中,任务管理***处于等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级,并根据优先级将至少一个待被布置任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件,并在待被布置任务对应的资源满足预设布置条件,则将所述每个待被布置任务布置到其对应的资源中。因此,本申请实施例所提供的方案中,在新任务被提交或任一任务被完成时,触发计算一次当前至少一个待被布置任务的优先级,并根据优先级对待被布置任务进行排序,然后依次为每个待被布置任务分配资源,即任务管理***可根据实际情况进行自适应资源调度,避免了由于任务调度过程中资源浪费,进而使得任务调度过程资源被合理分配。
基于与上述图1所示的方法相同的发明构思,本申请实施例提供了一种基于任务管理***的容器任务调度装置,参见图3,该装置包括:
初始化单元301,用于初始化任务管理***的参数,并设置所述任务管理***进入等待状态;
计算单元302,用于在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级;
判断单元303,用于根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件;
处理单元304,用于若满足,则将所述每个待被布置任务布置到其对应的资源中。
可选地,所述计算单元302,具体用于:
确定所述待被布置的至少一个任务中每个所述待被布置任务的任务信息,根据所述任务信息确定所述每个待被布置任务所需的资源量、重要度、已等待时长、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数;
根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值;
根据所述权重值以及所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数计算所述每个待被布置任务的优先级。
可选地,所述计算单元302,具体用于:
设置每个所述权重值的取值范围,以及根据所述每个权重值的取值范围确定不同权重值下的任务序列,得到多个任务序列;
计算所述多个任务序列中每个任务序列对应的个体适应度值,判断是否存在任一所述个体适用度值不小于预设阈值;
若不存在,则选择出第一个体适用度值,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,直到重新计算的个体适应度值不小于预设阈值为止,并确定所述重新计算的个体适应度值所对应的权重值,其中,所述第一个体适应度值是指当前最大的个体适应度值。
可选地,所述计算单元302,具体用于:
计算所述每个任务序列对应的资源利用率以及所述任务管理***的公平度;
根据预设的资源利用率和所述任务管理***的公平度的权重值以及所述资源利用率和所述任务管理***的公平度,计算所述每个任务序列对应的个体适应度值。
可选地,所述计算单元302,具体用于:
计算所述第一个体适用度值的交叉概率是否在预设的取值范围内;
若在,则从所述每个任务序列对应的个体适应度值中随机选择一个第二个体适应度值,并确定所述第一个体适应度值所对应的第一权重值以及所述第二个体适应度值对应的第二权重值,根据预设的交叉算子随机将所述第一权重值中部分或全部参数与所述第二权重值进行交叉替换,得到替换后的第一权重值;
根据所述替换后的第一权重值重新计算所述个体适应度值。
可选地,所述计算单元302,具体用于:若所述第一个体适用度值的交叉概率不在预设的取值范围内,则根据预设的变异算子随机重新生成所述第一权重值中部分或全部参数,得到重新生成的第一权重值;
根据所述重新生成的第一权重值重新计算所述个体适应度值。
可选地,所述判断单元303,还用于:
若检测到新任务被提交时,根据预设的过滤器判断所述新任务是否为预设的目标任务;
若是,则根据预设的处理规则执行处理操作。
可选地,所述预设的布置条件,包括:
所述每个待被布置任务所对应的资源未被占用;和
所述每个待被布置任务所对应的资源中剩余资源量满足需求。
可选地,所述判断单元303,具体用于若所述待被布置任务对应的资源不满足预设布置条件,则判断资源池中是否存在任一资源满足所述预设布置条件;
若不存在,则将所述资源池中可用资源进行预占用标记;
否则,判断所述待被布置的至少一个任务是否被全部布置;
若未被全部布置,则重新对所述任务序列中下一个任务进行布置,直到所述待被布置的至少一个任务被全部布置或所述资源池中的所有资源被全部占用为止。
参见图4,本申请提供一种计算机设备,该计算机设备,包括:
存储器401,用于存储至少一个处理器所执行的指令;
处理器402,用于执行存储器中存储的指令执行图1所述的方法。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种基于任务管理***的容器任务调度方法,其特征在于,包括:
初始化任务管理***的参数,并设置所述任务管理***进入等待状态;
在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级;包括:确定所述待被布置的至少一个任务中每个所述待被布置任务的任务信息,根据所述任务信息确定所述每个待被布置任务所需的资源量、重要度、已等待时长、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数;根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值;根据所述权重值以及所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数计算所述每个待被布置任务的优先级;
根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件;
若满足,则将所述每个待被布置任务布置到其对应的资源中。
2.如权利要求1所述的方法,其特征在于,根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值,包括:
设置每个所述权重值的取值范围,以及根据所述每个权重值的取值范围确定不同权重值下的任务序列,得到多个任务序列;
计算所述多个任务序列中每个任务序列对应的个体适应度值,判断是否存在任一所述个体适应度值不小于预设阈值;
若不存在,则选择出第一个体适应度值,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,直到重新计算的个体适应度值不小于预设阈值为止,并确定所述重新计算的个体适应度值所对应的权重值,其中,所述第一个体适应度值是指当前最大的个体适应度值。
3.如权利要求2所述的方法,其特征在于,计算所述多个任务序列中每个任务序列对应的个体适应度值,包括:
计算所述每个任务序列对应的资源利用率以及所述任务管理***的公平度;
根据预设的资源利用率和所述任务管理***的公平度的权重值以及所述资源利用率和所述任务管理***的公平度,计算所述每个任务序列对应的个体适应度值。
4.如权利要求3所述的方法,其特征在于,根据预设的交叉算法以及所述第一个体适应度值重新计算个体适应度值,包括:
计算所述第一个体适应度值的交叉概率是否在预设的取值范围内;
若在,则从所述每个任务序列对应的个体适应度值中随机选择一个第二个体适应度值,并确定所述第一个体适应度值所对应的第一权重值以及所述第二个体适应度值对应的第二权重值,根据预设的交叉算子随机将所述第一权重值中部分或全部参数与所述第二权重值进行交叉替换,得到替换后的第一权重值;
根据所述替换后的第一权重值重新计算所述个体适应度值。
5.如权利要求4所述的方法,其特征在于,若所述第一个体适应度值的交叉概率不在预设的取值范围内,则根据预设的变异算子随机重新生成所述第一权重值中部分或全部参数,得到重新生成的第一权重值;
根据所述重新生成的第一权重值重新计算所述个体适应度值。
6.如权利要求1~5任一项所述的方法,其特征在于,计算当前待被布置的至少一个任务的优先级之前,还包括:
若检测到新任务被提交时,根据预设的过滤器判断所述新任务是否为预设的目标任务;
若是,则根据预设的处理规则执行处理操作。
7.如权利要求1~5任一项所述的方法,其特征在于,所述预设的布置条件,包括:
所述每个待被布置任务所对应的资源未被占用;和
所述每个待被布置任务所对应的资源中剩余资源量满足需求。
8.如权利要求1~5任一项所述的方法,其特征在于,若所述待被布置任务对应的资源不满足预设布置条件,则判断资源池中是否存在任一资源满足所述预设布置条件;
若不存在,则将所述资源池中可用资源进行预占用标记;
否则,判断所述待被布置的至少一个任务是否被全部布置;
若未被全部布置,则重新对所述任务序列中下一个任务进行布置,直到所述待被布置的至少一个任务被全部布置或所述资源池中的所有资源被全部占用为止。
9.一种基于任务管理***的容器任务调度装置,其特征在于,包括:
初始化单元,用于初始化任务管理***的参数,并设置所述任务管理***进入等待状态;
计算单元,用于在所述等待状态下,若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级;
判断单元,用于根据所述优先级将所述至少一个任务进行排序得到一任务序列,在所述任务序列中逐个判断每个所述待被布置任务对应的资源是否满足预设布置条件;
处理单元,用于若满足,则将所述每个待被布置任务布置到其对应的资源中;
其中:
计算单元在若检测到新任务被提交或任一任务被完成时,计算当前待被布置的至少一个任务的优先级时包括:确定所述待被布置的至少一个任务中每个所述待被布置任务的任务信息,根据所述任务信息确定所述每个待被布置任务所需的资源量、重要度、已等待时长、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数;
根据预设的遗传算法分别确定所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数的权重值;
根据所述权重值以及所述每个待被布置任务所需的资源量、已等待时长、重要度、提交所述待被布置任务的用户已使用***资源量以及所述用户正在执行或等待执行的任务总数计算所述每个待被布置任务的优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010566927.7A CN111857988B (zh) | 2020-06-19 | 2020-06-19 | 一种基于任务管理***的容器任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010566927.7A CN111857988B (zh) | 2020-06-19 | 2020-06-19 | 一种基于任务管理***的容器任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857988A CN111857988A (zh) | 2020-10-30 |
CN111857988B true CN111857988B (zh) | 2022-11-18 |
Family
ID=72986963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010566927.7A Active CN111857988B (zh) | 2020-06-19 | 2020-06-19 | 一种基于任务管理***的容器任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857988B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795517B (zh) * | 2023-08-25 | 2023-11-07 | 中国人民解放军国防科技大学 | 一种多策略自适应的异步任务调度方法、***及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和*** |
CN109491761A (zh) * | 2018-11-07 | 2019-03-19 | 中国石油大学(华东) | 基于eda-ga混合算法的云计算多目标任务调度方法 |
CN110333937A (zh) * | 2019-05-30 | 2019-10-15 | 平安科技(深圳)有限公司 | 任务分发方法、装置、计算机设备和存储介质 |
CN111126800A (zh) * | 2019-12-10 | 2020-05-08 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8893140B2 (en) * | 2012-01-24 | 2014-11-18 | Life Coded, Llc | System and method for dynamically coordinating tasks, schedule planning, and workload management |
US9442760B2 (en) * | 2014-10-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Job scheduling using expected server performance information |
-
2020
- 2020-06-19 CN CN202010566927.7A patent/CN111857988B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和*** |
CN109491761A (zh) * | 2018-11-07 | 2019-03-19 | 中国石油大学(华东) | 基于eda-ga混合算法的云计算多目标任务调度方法 |
CN110333937A (zh) * | 2019-05-30 | 2019-10-15 | 平安科技(深圳)有限公司 | 任务分发方法、装置、计算机设备和存储介质 |
CN111126800A (zh) * | 2019-12-10 | 2020-05-08 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
Non-Patent Citations (1)
Title |
---|
自适应遗传算法的数据中继卫星光网络资源调度算法;赵卫虎等;《红外与激光工程》;20150425(第04期);第1311-1316页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111857988A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837410B (zh) | 任务调度方法、装置、电子设备及计算机可读存储介质 | |
CN107239336B (zh) | 一种实现任务调度的方法及装置 | |
CN108009016B (zh) | 一种资源负载均衡控制方法及集群调度器 | |
CN110442451B (zh) | 一种面向深度学习的多类型gpu集群资源管理调度方法和*** | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和*** | |
CN104765640B (zh) | 一种智能服务调度方法 | |
CN107579926A (zh) | 基于令牌桶算法的Ceph云存储***的QoS设置方法 | |
CN105378668B (zh) | 多处理器***中的操作***管理的中断引导 | |
CN109872049B (zh) | 资源配置优化方法及装置 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN108241534A (zh) | 一种任务处理、分配、管理、计算的方法以及装置 | |
CN110389822A (zh) | 执行任务的节点调度方法、装置和服务器 | |
CN111857988B (zh) | 一种基于任务管理***的容器任务调度方法及装置 | |
CN110780985A (zh) | 一种有限时间的并行任务调度方法与装置 | |
CN107193655A (zh) | 一种基于效用函数的面向大数据处理的公平资源调度方法 | |
CN114675975B (zh) | 一种基于强化学习的作业调度方法、装置及设备 | |
CN115981562A (zh) | 一种数据处理方法及装置 | |
CN112884248B (zh) | 一种大规模云服务流程的优化方法 | |
CN116862206B (zh) | 一种自适应优化生产计划的分布式制造执行的方法和*** | |
CN114816690A (zh) | 一种任务分配方法、装置、设备及存储介质 | |
CN110287008B (zh) | 一种测试任务调度方法、装置及电子设备 | |
CN116880968A (zh) | 一种作业调度方法及调度*** | |
CN117539612A (zh) | 基于混沌麻雀算法的ai训推平台任务调度方法和*** | |
CN112286623B (zh) | 一种信息处理方法及装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |