本申请实施例涉及计算机,尤其涉及一种任务调度方法、装置、计算机设备、计算机可读存储介质。
背景技术:
1、算力集群是由多个计算机设备或节点组成的分布式系统。节点间通过网络连接协同工作,以完成大规模的计算任务或处理大量数据。不同节点拥有的计算资源和资源使用情况各不相同,需要通过资源调度提高资源利用率。
2、然而,根据节点的资源使用情况进行资源调度,容易陷入局部优化,从而导致资源分布不均衡、资源平均利用率下降、系统稳定性差等问题。
3、需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
技术实现思路
1、本申请实施例提供一种任务调度方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
2、本申请实施例的一个方面提供了一种任务调度方法,应用于分布式系统,所述方法包括:
3、确定待处理的任务队列,所述任务队列包括依序排列的多个任务,每个任务关联有预期占用资源;
4、获取所述分布式系统在目标时刻的可用资源;
5、根据多个任务的预期占用资源和目标时刻的可用资源,从所述多个任务中确定下发的目标任务。
6、可选地,任务关联的预期占用资源通过以下操作得到:
7、获取所述分布式系统已执行的历史任务;
8、在获取到相同类型的历史任务的情况下,将该历史任务对应的历史占用资源确定为任务的预期占用资源;
9、在未获取到相同类型的历史任务的情况下,根据各个历史任务的历史占用资源,获取任务的预期占用资源。
10、可选地,所述确定待处理的任务队列,包括:
11、获取各个任务的热度信息;
12、将携带有热度信息的任务,根据其热度信息插入到所述任务队列中;
13、将未携带有热度信息的任务,加入到所述任务队列的队尾。
14、可选地,所述获取所述分布式系统在目标时刻的可用资源,包括:
15、获取所述分布式系统的总资源时间序列和资源利用率时间序列;
16、根据所述总资源时间序列和所述资源利用率时间序列,获取目标时刻的可用资源。
17、可选地,所述根据所述总资源时间序列和所述资源利用率时间序列,获取目标时刻的可用资源,包括:
18、根据所述资源利用率时间序列,获取资源利用率的波动程度;
19、根据所述总资源时间序列和所述资源利用率时间序列,获取所述分布式系统的可用资源时间序列;
20、根据所述可用资源时间序列,获取可用资源变化率和当前时刻的可用资源;
21、根据所述资源利用率的波动程度、所述可用资源变化率和所述当前时刻的可用资源,获取目标时刻的可用资源。
22、可选地,所述获取所述分布式系统在目标时刻的可用资源,还包括:
23、获取当前时刻执行中任务在各个执行阶段的执行时长;
24、获取当前时刻执行中任务在各个执行阶段的预期占用资源和延迟时间;
25、根据所述执行中任务在各个执行阶段的执行时长、预期占用资源和延迟时间,获取目标时刻的预分配资源;
26、根据所述总资源时间序列、所述资源利用率时间序列和所述目标时刻的预分配资源,获取目标时刻的可用资源。
27、可选地,所述根据多个任务的预期占用资源和目标时刻的可用资源,从所述多个任务中确定下发的目标任务,包括:
28、依据队列顺序,将所述任务队列中的任务逐个配置为目标任务,直至目标时刻的可用资源不足:
29、在配置所述任务队列中第一个任务的过程中,在目标时刻的可用资源满足第一个任务的预期占用资源的情况下,将所述第一个任务配置为目标任务并更新目标时刻的可用资源;
30、在配置所述任务队列中第二个任务以及随后的每个任务的过程中,根据当前任务的预期占用资源和经上一个任务配置过程更新后的目标时刻的可用资源,确定是否将当前任务配置为目标任务;所述当前任务为逐个配置过程中处于配置状态的任务。
31、可选地,所述分布式系统包括多个工作节点,所述任务调度方法还包括:
32、根据预设规则从多个工作节点中选取一个工作节点作为目标工作节点,并并为所述目标工作节点配置具有使用期限的互斥锁;
33、其中,所述目标工作节点用于从多个任务中获取下发的目标任务,以及在超过使用期限时释放所述互斥锁;其余工作节点用于以第一预设频率获取被释放的互斥锁,其中获取到所述被释放的互斥锁的工作节点被指定为新的目标工作节点。
34、可选地,获取所述分布式系统在目标时刻的可用资源包括:通过目标工作节点以第二预设频率查询所述分布式系统的总资源和资源利用率,以获取目标时刻的可用资源;
35、根据多个任务的预期占用资源和目标时刻的可用资源,从所述多个任务中确定下发的目标任务,包括:通过目标工作节点从多个任务中获取下发的目标任务;
36、对应地,所述任务调度方法还包括:在目标工作节点未获取到目标任务的情况下,更新互斥锁的使用期限。
37、本申请实施例的另一个方面提供了一种任务调度装置,所述装置包括:
38、第一确定模块,用于确定待处理的任务队列,所述任务队列包括依序排列的多个任务,每个任务关联有预期占用资源;
39、获取模块,用于获取所述分布式系统在目标时刻的可用资源;
40、第二确定模块,用于根据多个任务的预期占用资源和目标时刻的可用资源,从所述多个任务中确定下发的目标任务。
41、本申请实施例的另一个方面提供了一种计算机设备,包括:
42、至少一个处理器;及
43、与所述至少一个处理器通信连接的存储器;
44、其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
45、本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
46、本申请实施例采用上述技术方案可以包括如下优势:
47、可以通过任务队列获取待调度的各个任务,各个任务在该任务队列中顺序排列,每个任务对应有预期占用资源。获取分布式系统(例如算力集群)在目标时刻的可用资源。根据多个任务的预期占用资源和目标时刻的可用资源,从多个任务中确定需要下发的目标任务。可知,本申请实施例根据算力集群的可用资源和任务所需资源共同决策每个时刻要下发的目标任务,实现了任务的动态弹性下发。在算力集群存在资源空闲时,加速下发任务;在算力集群负载饱和时,暂停任务下发,可以有效保障算力集群的系统稳定性并提高算力集群资源的平均利用率。
1.一种任务调度方法,其特征在于,应用于分布式系统,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,任务关联的预期占用资源通过以下操作得到:
3.根据权利要求1所述的方法,其特征在于,所述确定待处理的任务队列,包括:
4.根据权利要求1所述的方法,其特征在于,所述获取所述分布式系统在目标时刻的可用资源,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述总资源时间序列和所述资源利用率时间序列,获取目标时刻的可用资源,包括:
6.根据权利要求4所述的方法,其特征在于,所述获取所述分布式系统在目标时刻的可用资源,还包括:
7.根据权利要求1所述的方法,其特征在于,所述根据多个任务的预期占用资源和目标时刻的可用资源,从所述多个任务中确定下发的目标任务,包括:
8.根据权利要求1至7任一项所述的方法,其特征在于,所述分布式系统包括多个工作节点,所述方法还包括:
9.根据权利要求8的方法,其特征在于,
10.一种任务调度装置,其特征在于,应用于分布式系统,所述装置包括:
11.一种计算机设备,其特征在于,包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至9中任一项所述的方法。