本技术实施例涉及任务调度领域,尤其涉及一种任务调度系统及方法、设备。
背景技术:
1、随着云原生技术的快速发展,越来越多的企业开始拥抱云原生,推动业务上云已成为业界趋势。在当前的业务场景下,存在大量的任务调度需求。例如,机器学习等智能算法在推荐、图像处理、风控等多个场景具有明显优势,该智能算法需要大量的数据来训练,会产生大量的离线训练任务的需求。又例如,联邦学习等技术在数据安全、隐私保护等多个场景具有广泛应用,也会产生大量的离线训练任务的需求,等等。
2、因此,如何实现能够支持不同类型的任务调度,成为亟待解决的问题。
技术实现思路
1、本技术实施例提供一种任务调度系统及方法、设备,用以解决现有技术中实现不同类型的任务调度。
2、第一方面,本技术实施例中提供了一种任务调度系统,包括接口服务模块、调度管理模块以及多个类型的多个工作节点;其中,每个类型包括多个工作节点;
3、所述接口服务模块,用于接收目标任务的调度请求,并将所述调度请求发送至所述调度管理模块,所述调度请求包括所述目标任务的类型;
4、所述调度管理模块,用于基于所述调度请求,从与所述目标任务的类型对应的多个工作节点中选择目标节点,在所述目标节点上执行所述目标任务。
5、可选的,所述调度请求还包括所述目标任务的配置参数;
6、所述调度管理模块,基于所述调度请求,从与所述目标任务的类型对应的多个工作节点中选择目标节点包括:
7、所述调度管理模块,用于结合所述配置参数,以及与所述目标任务的类型对应的多个工作节点中每个工作节点的负载情况,选择目标节点。
8、可选的,还包括统计服务模块;
9、所述统计服务模块,用于统计所述任务调度系统中的运行数据,并将所述运行数据发送至所述调度管理模块。
10、可选的,还包括节点控制模块;
11、所述调度管理模块,用于将所述运行数据发送至所述节点控制模块;
12、所述节点控制模块,用于基于所述运行数据,计算所述任务调度系统中每个类型的工作节点数量。
13、可选的,所述运行数据包括所述任务调度系统中每个类型对应的正在执行的任务数量及等待执行的任务数量、每个类型对应的预设时间区间所需的工作节点数量的最大及最小值、每个工作节点的实际资源利用率、每个工作节点的资源利用率设定的最大及最小值、每个工作节点的平均资源量以及每个任务的平均资源占用量;
14、所述节点控制模块,用于基于所述运行数据,计算所述任务调度系统中每个类型的工作节点数量包括:
15、对于任一类型,所述节点控制模块,用于在每个时间间隔内,按照如下方式计算所述任务调度系统中的工作节点数量:
16、在所述工作节点的实际资源利用率低于资源利用率设定的最小值的情况下,将预设时间区间所需的工作节点数量的最小值作为所述任务调度系统中的工作节点数量;
17、在所述工作节点的实际资源利用率高于资源利用率设定的最小值,且低于资源利用率设定的最大值的情况下,将预设时间区间所需的工作节点数量的最小值,与延迟预留的工作节点数量进行加和计算,获得第一和值,将所述第一和值作为所述任务调度系统中的工作节点数量;
18、在所述工作节点的实际资源利用率高于资源利用率设定的最大值的情况下,将预设时间区间所需的工作节点数量的最小值,延迟预留的工作节点数量,与工作节点数量偏移量进行加和计算,获得第二和值,在所述第二和值不超过预设时间区间所需的工作节点数量的最大值的情况下,将所述第二和值作为所述任务调度系统中的工作节点数量,以及在所述第二和值超过预设时间区间所需的工作节点数量的最大值的情况下,将预设时间区间所需的工作节点数量的最大值作为所述任务调度系统中的工作节点数量;
19、其中,所述工作节点数量偏移量基于预设比例参数、预设积分参数、预设微分参数、所述任务调度系统中正在执行的任务数量及等待执行的任务数量、每个工作节点的平均资源量、每个任务的平均资源占用量,每个时间间隔内所述任务调度系统中的工作节点数量,进行迭代处理获得;所述延迟预留的工作节点数量基于所述任务调度系统中的任务数量与预设时间区间所需的工作节点数量的最小值,进行迭代处理获得。
20、可选的,所述工作节点数量偏移量按照如下公式计算获得:
21、ndelta=kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)];其中,ndelta表示工作节点数量偏移量,kp表示预设比例参数,ki表示预设积分参数,kd表示预设微分参数,k表示迭代轮数,e(k)表示工作节点数量误差,e(k)=(taskwaiting+taskrunning)/s*savg-ncontainer,taskwaiting表示所述任务调度系统中等待执行的任务数量,taskrunning表示所述任务调度系统中正在执行的任务数量,s表示每个工作节点的平均资源量,savg表示每个任务的平均资源占用量,ncontainer表示所述任务调度系统中的工作节点数量;
22、所述延迟预留的工作节点数量按照如下公式计算获得:
23、npre=(taskk-taskk-1)/taskk-1*nmin,其中,task表示所述任务调度系统中的任务数量,k表示迭代轮数,nmin表示预设时间区间所需的工作节点数量的最小值。
24、可选的,还包括灰度控制模块;
25、所述调度管理模块,还用于将所述调度请求发送至所述灰度控制模块;
26、所述灰度控制模块,用于基于预设的灰度配置文件,对符合灰度更新条件的目标任务所对应的执行版本进行灰度更新。
27、可选的,还包括调度备用模块;
28、所述调度备用模块,用于对所述任务调度系统中的任务执行时的状态信息进行压缩合并处理。
29、可选的,所述调度管理模块,还用于接收所述工作节点按照预设时间间隔发送的状态数据,确定所述工作节点上的任务状态并更新。
30、第二方面,本技术实施例中提供了一种任务调度方法,包括:
31、接收目标任务的调度请求;所述调度请求包括所述目标任务的类型;
32、基于所述调度请求,从与所述目标任务的类型对应的多个工作节点中选择目标节点;
33、在所述目标节点上执行所述目标任务。
34、第三方面,本技术实施例中提供了一种计算设备,包括存储组件及处理组件;所述存储组件存储一条或多条计算机指令,所述计算机指令供所述处理组件调用执行,所述处理组件执行所述一条或多条计算机指令以实现如第二方面所述的任务调度方法。
35、第四方面,本技术实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时以实现如第二方面所述的任务调度方法。
36、本技术实施例中,该任务调度系统可以包括接口服务模块、调度管理模块以及多个类型的多个工作节点,其中,每个类型可以包括多个工作节点。接口服务模块,可以用于接收目标任务的调度请求,并将该调度请求发送至调度管理模块,该调度请求中可以包括目标任务的类型,调度管理模块,可以用于基于该调度请求,从与目标任务的类型对应的多个工作节点中选择目标节点,并在目标节点上执行目标任务。该任务调度系统中,调度管理模块可以管理多个不同类型的工作节点,能够在与目标任务的类型对应的节点上执行目标任务,由此可以支持不同类型的任务调度,提高了任务调度系统的适用范围。
37、本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。