CN113626173B - 调度方法、装置及存储介质 - Google Patents
调度方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113626173B CN113626173B CN202111016231.8A CN202111016231A CN113626173B CN 113626173 B CN113626173 B CN 113626173B CN 202111016231 A CN202111016231 A CN 202111016231A CN 113626173 B CN113626173 B CN 113626173B
- Authority
- CN
- China
- Prior art keywords
- scheduling
- executed
- information
- calculation
- task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims abstract description 116
- 238000012544 monitoring process Methods 0.000 claims description 21
- 238000012216 screening Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 description 20
- 238000011045 prefiltration Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 4
- 229940126655 NDI-034858 Drugs 0.000 description 2
- 241000290929 Nimbus Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供一种调度方法、装置及存储介质,其中,调度方法,包括:接收云服务器的调度请求,所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息;根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,所述调度计算任务用于确定运行所述调度对象的运行对象;使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果;将所述调度对象调度至所述执行结果指示的运行对象。该调度方法可以并行加速,从而提升效率。
Description
技术领域
本申请实施例涉及电子信息技术领域,尤其涉及一种调度方法、装置及存储介质。
背景技术
云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。使用者无需提前购买硬件,即可短时间内创建或释放任意多台服务器。而随着云服务器的需求增长,云服务器的新可用区不断开服,云服务器数量规模也在急剧增加,这使得在云服务器创建、销毁、迁移、和升级等动作进行过程中,云服务器的调度系统的调度能力需要进行提升。
发明内容
有鉴于此,本申请实施例提供一种调度方法、装置及存储介质,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种调度方法,包括:接收云服务器的调度请求,所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息;根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,所述调度计算任务用于确定运行所述调度对象的运行对象;使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果;将所述调度对象调度至所述执行结果指示的运行对象。
根据本申请实施例的第二方面,提供了一种调度装置,包括:接收模块,用于接收云服务器的调度请求,所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息;拆分模块,用于根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,所述调度计算任务用于确定运行所述调度对象的运行对象;处理模块,用于使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果;调度模块,用于将所述调度对象调度至所述执行结果指示的运行对象。
根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如第一方面的调度方法对应的操作。
根据本申请实施例的第四方面,提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如第一方面的调度方法。
本申请实施例提供的调度方法、装置及存储介质,该方法可以对调度计算任务进行拆分,从而获得至少部分能够并行执行的待执行计算任务、以及待执行计算任务之间的执行顺序关系,进而可以使用流式计算框架执行待执行计算任务,以实现对待执行计算任务的并行处理加速和负载均衡,提升调度热点的性能,从而减少延迟。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A为本申请实施例一提供的一种调度方法的场景示意图;
图1B为本申请实施例一提供的一种调度方法的步骤流程图;
图1C为本申请实施例一提供的一种拆分出的待执行计算任务的示意图;
图2A为本申请实施例二提供的一种调度方法的流程图;
图2B为本申请实施例二提供的一种流式计算框架的示意图;
图2C为本申请实施例二的流式计算框架中计算模块的示意图;
图3为本申请实施例三提供的一种调度装置的结构框图;
图4为本申请实施例四提供的一种电子设备的结构图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
实施例一
本申请实施例一提供一种调度方法,应用于云服务器中,为了便于理解,对本申请实施例一所提供的调度方法的应用场景进行说明,参照图1A所示,云服务器至少包括调度器和多个运行对象(如计算节点),运行对象用于部署和运行调度对象,调度对象例如为虚拟机或者容器等。运行对象可以是任何适当的具有计算能力的设备,本实施例对此不作限制。调度器用于处理调度请求,例如,调度请求为创建虚拟机,调度器需要基于该调度请求从运行对象中确定适合运行该虚拟机的运行对象,并将调度对象调度到该适当的运行对象上,以保证运行对象能够适配调度对象的需求,且确保调度对象运行的稳定性。在本实施例中,调度对象配置有流式计算框架,使得其可以进行并行计算,以此提升调度效率。
参照图1B,示出了本申请实施例一的调度方法的步骤流程图。该方法包括以下步骤:
步骤102:接收云服务器的调度请求。
调度请求可以为使用者请求在云服务器中创建虚拟机或者某类型容器的请求、或者调度请求可以为使用者请求在云服务器中运行计算任务的请求,本实施例对此不作限制。虚拟机、容器和计算任务等均可以称为调度对象。所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息。
调度对象的信息包括但不限于调度对象的类型(如虚拟机、容器或者计算任务等)、调度对象需要的内存大小、调度对象需要的CPU大小等等,本实施例对此不作限制。
使用者的信息包括但不限于使用者的权限信息、或者使用者的标识信息(如UUID或者账号或者用户名等)等,本实施例对此不作限制。
步骤104:根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系。
为了提升调度器的计算效率,进而在负载较高时能够避免延迟过大,保证调度的效率,在本实施例中,对调度器的调度计算任务进行拆分,以使得拆分出的至少部分待执行计算任务是可以并行执行的,这样就可以在后续执行这些任务时进行并行加速,从而节省时间、减少延迟。同时为了保证待执行计算任务的执行顺序正确还可以确定这些待执行计算任务间的执行顺序关系,以保证在存在前后依存的计算任务时也能够正确执行。
前述的调度计算任务用于确定运行所述调度对象的运行对象。针对不同的调度请求对应的调度计算任务可能不同,故本实施例对此不作限制。
为了便于理解,下面以一个具体示例对拆分过程进行说明:设调度请求A涉及的调度任务包括预过滤任务1(如筛选IP地址满足某一地址段、和筛选运行对象的ID在某一ID区间内的运行对象)、过滤任务2(如从预筛选出的运行对象中筛选出已有VM数量小于设定VM值的运行对象)、打分任务3(如根据调度对象的某一属性和运行对象的某一属性确定调度对象与运行对象之间的匹配度)和选择任务4(如根据匹配度选择匹配对最高的运行对象作为需要调度到的运行对象)。
其中,预过滤任务1可以拆分为预过滤任务1.1(如筛选IP地址满足某一地址段的运行对象)和预过滤任务1.2(如筛选运行对象的ID在某一ID区间内的运行对象)。打分任务3可以将运行对象拆分为多个集合,每个集合对应一个打分任务,记作打分任务3.1~3.n,n的取值大于或等于1。这样多个打分任务可以并行执行。
预过滤任务1.1、预过滤任务1.2、以及打分任务3.1~3.n、剩余的过滤任务2和选择任务4均可以记作待执行计算任务。这些待执行计算任务中,预过滤任务1.1和预过滤任务1.2和打分任务3.1~3.n之间可以并行执行,而过滤任务2依赖于预过滤任务1.1和预过滤任务1.2的结果,选择任务4依赖于过滤任务2和打分任务3.1~3.n的结果,因此确定的待执行计算任务间的执行顺序关系如图1C所示,任务分支1:预过滤任务1.1和预过滤任务1.2并行执行,然后与过滤任务2串行执行。任务分支2:打分任务3.1~3.n并行执行。然后选择任务4在过滤任务2和打分任务3.1~3.n之后执行。任务分支1和任务分支2可以串行执行。
步骤106:使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果。
基于获得的待执行计算任务和执行顺序关系可以发送到流式计算框架中,由流式计算框架执行待执行计算任务,从而获得执行结果。该执行结果可以是选择出的适合于运行调度对象的运行对象。
步骤108:将所述调度对象调度至所述执行结果指示的运行对象。
基于执行结果选择出的运行对象,将调度对象(如虚拟机或者容器等)调度到该运行对象,以完成调度。
通过上述方式,可以对调度计算任务进行拆分,从而获得至少部分能够并行执行的待执行计算任务、以及待执行计算任务之间的执行顺序关系,进而可以使用流式计算框架执行待执行计算任务,以实现对待执行计算任务的并行处理加速和负载均衡,提升调度热点的性能,从而减少延迟。
实施例二
参照图2A,示出了本申请实施例二的调度方法的步骤流程示意图。
在本实施例中,该方法包括以下步骤:
步骤S202:接收云服务器的调度请求。
调度请求用于指示在云服务器中增加调度对象。调度对象例如为容器、虚拟机或者计算任务等。
所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息。调度对象的信息包括但不限于调度对象的类型(如虚拟机、容器或者计算任务等)、调度对象需要的内存大小、调度对象需要的CPU大小等等,本实施例对此不作限制。
使用者的信息包括但不限于使用者的权限信息、或者使用者的标识信息(如UUID或者账号或者用户名等)等,本实施例对此不作限制。
步骤S204:根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系。
在本实施例中,所述调度计算任务用于确定运行所述调度对象的运行对象。运行对象可以是用于运行调度对象的物理机等具有计算能力的设备,本实施例对此不作限制。
针对不同的调度对象对其进行调度涉及的调度计算任务可能不同,而不同的调度计算任务拆分出的待执行计算任务也可能不同,为了适应不同的调度对象,在一种可行方式中,步骤S204包括以下子步骤:
步骤S2041:根据所述调度对象的信息,从预设的多个拆分规则中确定与所述调度对象匹配的拆分规则。
拆分规则可以是针对调度对象预设的规则,每个拆分规则均可以配置其对应的调度对象。拆分规则用于指示需要拆分的调度计算任务对应拆分出的待执行计算任务、以及待执行计算任务之间的执行顺序关系。需要说明的是,一个调度请求对应的涉及一个或多个调度计算任务,而可以拆分的调度计算任务可以是部分或者全部,对于可拆分的调度计算任务其拆分出的任务可以记作待执行计算任务,对于不能拆分的调度计算任务可以直接将其作为待执行计算任务。
例如,调度计算任务可以分为预过滤任务(记作preFilter)、过滤任务(Filter)、打分任务(Score)、权重任务(Weight)和选择任务(Assign)。其中,预过滤任务用于对运行对象进行预过滤。过滤任务用于对预过滤出的运行对象进行过滤。打分任务用于计算调度对象与候选运行对象之间的匹配度(其具体的计算方式可以根据使用的调度器的不同、以及调度请求中携带的调度对象的信息、使用者的信息等适应调整,对此不作赘述)。权重任务用于根据打分任务的结果对候选运动对象进行排序。选择任务用于根据排序结果从候选运行对象中选择运行对象。对于不同的调度请求,其对应的调度计算任务可能不同,如不包含预过滤任务等。
在确定拆分规则时,可以根据调度对象的信息中的调度对象的类型从多个拆分规则中确定与其匹配的拆分规则。
步骤S2042:根据匹配的所述拆分规则、所述调度对象的信息和所述使用者的信息,对至少部分所述调度计算任务进行拆分,并根据所述拆分结果确定所述待执行计算任务和所述执行顺序关系。
在一种可行方式中,步骤S2042可以实现为:根据匹配的所述拆分规则,对所述调度计算任务进行拆分,以获得拆分出的多个待执行计算任务以及所述执行顺序关系;根据所述调度对象的信息和所述使用者的信息,确定所述待执行计算任务的条件。
根据拆分规则将可拆分的调度计算任务拆分成可并行执行的待执行计算任务。例如,按照筛选涉及的属性将涉及筛选的调度计算任务拆分为多个可并行执行的待执行计算任务。针对待执行计算任务(其可以包括拆分出的待执行计算任务和未拆分的调度计算任务)按照拆分规则确定其指示的执行顺序关系。
在本实施例中,所述待执行计算任务包括下述至少之一:用于指示按照对应的条件对候选运行对象进行预筛选或筛选的任务、用于指示根据所述调度对象的信息和所述使用者的信息确定所述候选运行对象与所述调用对象的匹配度的打分任务、用于指示根据所述匹配度确定运行所述调度对象的运行对象的选择任务。
针对各待执行计算任务根据调度对象的信息和使用者的信息确定待执行计算任务的条件。
例如,调度对象的信息中指示调度对象需要的运行对象的地理位置为地理位置A、运行对象的硬件架构为架构B、运行对象的网络架构为网络架构C,调度对象的使用者的信息指示使用者的优先级为1级,则根据调度对象的信息和使用者的信息确定的过滤任务对应的待执行计算任务对应的条件分别为:
待执行计算任务1的条件:筛选地理位置为地理位置A的运行对象。
待执行计算任务2的条件:筛选硬件架构为架构B的运行对象。
待执行计算任务3的条件:筛选网络架构为网络架构C的运行对象。
待执行计算任务4的条件:筛选运行对象的优先级高于或等于1级的运行对象。
采用类似的方式可以确定打分任务拆分出的待执行计算任务对应的条件、权重任务作为待执行计算任务对应的条件、以及选择任务作为待执行计算任务对应的条件,在此不再赘述。
步骤S206:使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果。
流式计算框架可以是任何适当的框架,如Storm框架、Spark框架、和Flink框架等。
在一种可行方式中,步骤S206可以实现为:将所述待执行计算任务发送至所述流式计算框架,以使所述流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果。
如图2B所示,其示出了一种流式计算框架,流式计算框架包括主控节点(nimbus)和至少一个工作节点。其中,主控节点是流式计算框架的控管核心,负责逻辑拓扑(topology)的提交、状态信息的管控、和任务重新分配等。
工作节点运行至少一个监控进程(Supervisor)和多个工作进程(Worker),除此之外还可以运行管理进程(zookeeper)。其中,zookeeper用于保存流式计算框架的状态信息(如supervisor和worker的状态信息等),nimbus通过在zookeeper中更新状态信息来分配任务。
supervisor可以从zookeeper中读取状态信息获取被分配的任务。同时supervisor用于监听对应的工作进程的状态信息,其可以将监听获得的状态信息发送给zookeeper用于存储。supervisor除了监听对应的工作进程的状态信息外还可以管理对应的所述工作进程,如重启工作进程后者关闭工作进程等。
工作进程可以是虚拟机(如JVM)或者容器,工作进程中启动有一个或多个线程,每个线程用于执行对应的任务。
以前述的流式计算框架为例,在流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果时,可以实现为:
所述主控节点根据所述监控进程监听到的各所述工作进程的状态信息,将获取的所述执行顺序关系和所述待执行计算任务分配至选中的监控进程;所述选中的监控进程根据所述执行顺序关系将所述待执行计算任务分配至多个所述工作进程;至少部分所述工作进程根据候选运行对象的信息并行执行对应的所述待计算任务;根据各所述工作进程的执行结果,满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果。
其中,主控节点根据执行顺序关系和待执行计算任务确定逻辑拓扑(topology),逻辑拓扑指示了待执行计算任务间的顺序关系、以及各待执行计算任务对应的计算模块中的数据计算节点和数据触发节点。数据触发节点用于从数据源读取对应的数据,以供数据计算节点使用。此外,主控节点根据各工作进程的状态信息确定执行该逻辑拓扑的监控进程。
如图2C,其示出了一种流式计算框架的计算模块按照确定逻辑拓扑分配的待执行计算任务的示意图。该逻计算模块包括数据源(DateSource)、数据触发节点(Spout)和数据计算节点(Bolts),数据源用于存储需要计算的原始数据,例如调度器中的元数据,如包含的运行对象的ID、运行对象的IP地址、运行对象的优先级、运行对象的网络架构、运行对象的地理地址等等。
数据触发节点用于发送待执行计算任务到数据计算节点。
数据计算节点用于执行待执行计算任务。数据触发节点(Spout)和数据计算节点(Bolts)均以工作进程(worker)中的线程的方式实现。
监控进程(supervisor)获得逻辑拓扑,以此获得执行顺序关系和所述待执行计算任务,并将待执行计算任务分配至对应的多个工作进程中,由工作进程中的spout线程或者bolt线程执行。由此实现多worker处理,而因为worker可以有多个并行线程,因此也就实现了多线程处理。
通过将待执行计算任务发送到数据触发节点,由数据触发节点将其分发到相应的数据计算节点,由数据计算节点进行计算,如图2C所示,预过滤任务拆分为多个待执行计算任务,并将每个待执行计算任务发送到一个相应的数据计算节点,以使其可以并行执行。过滤任务(filter)、打分任务(score)和排序任务(weight)、以及选择任务(assign)等也可以分配对应的数据计算节点。本实施例的流式计算框架采用Supervisor(监督,用于监测worker的状态)和worker(用于执行计算任务)的分布式框架,不同的待执行计算任务可以并行或者串行执行,也可以分配在多worker中执行,从而实现多线程执行,进而提升调度的性能与可扩展性。
为了进一步提升性能,所述流式计算框架中初始化有所述候选运行对象的信息,所述流式计算框架中用于执行所述待执行计算任务的多个计算节点共享所述候选运行对象的信息。
例如,在一可行方式中,数据源中初始化该候选运行对象的信息。这样只需要一次初始化数据,数据计算节点不需要复制,可以共享大量的运行对象的信息(如元数据),而单次调度请求的待执行计算任务分散在多线程中甚至多数据计算节点上,消除了单次调度时间较长以及毛刺的问题。
通过数据计算节点对待执行计算任务进行执行,从候选运行对象中筛选出满足调度对象的信息和使用者的信息指示的条件的运行对象,并根据调度对象的信息和使用者的信息指示的属性与筛选出的运行对象中相应的属性计算匹配度,并根据计算出的匹配度进行排序,并根据排序结果选择用于运行调度对象的运行对象。
步骤S208:将所述调度对象调度至所述执行结果指示的运行对象。
在一种可行方式中,步骤S208可以实现为:将所述调度对象调度至所述执行结果指示的运行对象;根据对所述调度对象的调度结果,对所述运行对象的信息进行更新。
例如,从候选运行对象中确定的运行对象为运行对象A,则将调度对象(如容器)调度到运行对象A中。由于调度对象会占用一些运行对象的资源(如CPU、内存、网络带宽等),因此在调度完成后若调度结果为成功,则可以将数据源中的运行对象的信息进行更新。例如,对运行对象中的资源进行赋值(分配给调度对象)与扣减。
通过将调度器的至少部分调度计算任务(如过滤任务)进行细粒度拆分,将一个计算任务拆分后,可以由流式计算框架实现任务的负载均衡,从而提升调度热点性能。此外,流式计算框架的数据源可以实现一次初始化运行对象的信息,相同计算节点不需要复制,共享大量的运行对象的信息(即元数据),单次调度请求分散在多线程中甚至多机器上,消除了单次调度时间较长以及毛刺的问题,通过流式并行加速方式,实现了调度器节点计算最优调度。
实施例三
参照图3,示出了本申请实施例三的调度装置的结构框图。
在本实施例中,调度装置包括:
接收模块302,用于接收云服务器的调度请求,所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息;
拆分模块304,用于根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,所述调度计算任务用于确定运行所述调度对象的运行对象;
处理模块306,用于使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果;
调度模块308,用于将所述调度对象调度至所述执行结果指示的运行对象。
可选地,所述拆分模块304用于根据所述调度对象的信息,从预设的多个拆分规则中确定与所述调度对象匹配的拆分规则;根据匹配的所述拆分规则、所述调度对象的信息和所述使用者的信息,对至少部分所述调度计算任务进行拆分,并根据所述拆分结果确定所述待执行计算任务和所述执行顺序关系。
可选地,所述拆分模块304用于根据匹配的所述拆分规则、所述调度对象的信息和所述使用者的信息,对至少部分所述调度计算任务进行拆分,并根据所述拆分结果确定所述待执行计算任务和所述执行顺序关系时,根据匹配的所述拆分规则,对所述调度计算任务进行拆分,以获得拆分出的多个待执行计算任务以及所述执行顺序关系;根据所述调度对象的信息和所述使用者的信息,确定所述待执行计算任务的条件。
可选地,所述待执行计算任务包括下述至少之一:用于指示按照对应的条件对候选运行对象进行预筛选或筛选的任务、用于指示根据所述调度对象的信息和所述使用者的信息确定所述候选运行对象与所述调用对象的匹配度的打分任务、用于指示根据所述匹配度确定运行所述调度对象的运行对象的选择任务。
可选地,所述处理模块306用于将所述待执行计算任务发送至所述流式计算框架,以使所述流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果。
可选地,所述流式计算框架中初始化有所述候选运行对象的信息,所述流式计算框架中用于执行所述待执行计算任务的多个计算节点共享所述候选运行对象的信息。
可选地,所述流式计算框架中包括主控节点和至少一个工作节点,所述工作节点中运行至少一个监控进程和多个工作进程,所述监控进程用于监听对应的工作进程的状态信息,并管理对应的所述工作进程;所述处理模块306用于在使流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果时,所述主控节点根据所述监控进程监听到的各所述工作进程的状态信息,将获取的所述执行顺序关系和所述待执行计算任务分配至选中的监控进程;所述选中的监控进程根据所述执行顺序关系将所述待执行计算任务分配至多个所述工作进程;至少部分所述工作进程根据候选运行对象的信息并行执行对应的所述待计算任务;根据各所述工作进程的执行结果,满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果。
实施例四
基于上述实施例所描述的方法,本申请实施例四提供一种电子设备,用于执行上述实施例所描述的方法,参照图4,示出了根据本申请实施例四的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备40可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它电子设备或服务器进行通信。
处理器402,用于执行程序410,具体可以执行上述实施例一中任一调度方法中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以实现实施例中所描述的调度方法。程序410中各步骤的具体实现可以参见上述调度方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
基于上述实施例所描述的方法,本申请实施例提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一所描述的方法。
基于上述实施例所描述的方法,本申请实施例提供一种计算机程序产品,该计算机程序产品被处理器执行时实现如实施例所描述的方法。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的调度方法。此外,当通用计算机访问用于实现在此示出的调度方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的导航方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (9)
1.一种调度方法,包括:
接收云服务器的调度请求,所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息;
根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,所述调度计算任务用于确定运行所述调度对象的运行对象;
使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果;
将所述调度对象调度至所述执行结果指示的运行对象;
所述使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果,包括:
将所述待执行计算任务发送至所述流式计算框架,以使所述流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果。
2.根据权利要求1所述的方法,其中,所述根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,包括:
根据所述调度对象的信息,从预设的多个拆分规则中确定与所述调度对象匹配的拆分规则;
根据匹配的所述拆分规则、所述调度对象的信息和所述使用者的信息,对至少部分所述调度计算任务进行拆分,并根据拆分结果确定所述待执行计算任务和所述执行顺序关系。
3.根据权利要求2所述的方法,其中,所述根据匹配的所述拆分规则、所述调度对象的信息和所述使用者的信息,对至少部分所述调度计算任务进行拆分,并根据所述拆分结果确定所述待执行计算任务和所述执行顺序关系,包括:
根据匹配的所述拆分规则,对所述调度计算任务进行拆分,以获得拆分出的多个待执行计算任务以及所述执行顺序关系;
根据所述调度对象的信息和所述使用者的信息,确定所述待执行计算任务的条件。
4.根据权利要求3所述的方法,其中,所述待执行计算任务包括下述至少之一:用于指示按照对应的条件对候选运行对象进行预筛选或筛选的任务、用于指示根据所述调度对象的信息和所述使用者的信息确定所述候选运行对象与所述调度对象的匹配度的打分任务、用于指示根据所述匹配度确定运行所述调度对象的运行对象的选择任务。
5.根据权利要求1所述的方法,其中,所述流式计算框架中初始化有所述候选运行对象的信息,所述流式计算框架中用于执行所述待执行计算任务的多个计算节点共享所述候选运行对象的信息。
6.根据权利要求1所述的方法,其中,所述流式计算框架中包括主控节点和至少一个工作节点,所述工作节点中运行至少一个监控进程和多个工作进程,所述监控进程用于监听对应的工作进程的状态信息,并管理对应的所述工作进程;
所述流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果,包括:
所述主控节点根据所述监控进程监听到的各所述工作进程的状态信息,将获取的所述执行顺序关系和所述待执行计算任务分配至选中的监控进程;
所述选中的监控进程根据所述执行顺序关系将所述待执行计算任务分配至多个所述工作进程;
至少部分所述工作进程根据候选运行对象的信息并行执行对应的所述待执行计算任务;
根据各所述工作进程的执行结果,满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果。
7.一种调度装置,包括:
接收模块,用于接收云服务器的调度请求,所述调度请求中携带有调度对象的信息和所述调度对象的使用者的信息;
拆分模块,用于根据所述调度对象的信息和所述使用者的信息,对至少部分调度计算任务进行拆分,以获得至少部分可并行执行的待执行计算任务和所述待执行计算任务间的执行顺序关系,所述调度计算任务用于确定运行所述调度对象的运行对象;
处理模块,用于使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果,其中,所述使用流式计算框架按照所述执行顺序关系执行所述待执行计算任务,以获得所述流式计算框架的执行结果,包括:将所述待执行计算任务发送至所述流式计算框架,以使所述流式计算框架根据候选运行对象的信息执行所述待执行计算任务,以筛选出满足所述待执行计算任务指示的筛选条件的运行对象作为所述执行结果;
调度模块,用于将所述调度对象调度至所述执行结果指示的运行对象。
8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的调度方法对应的操作。
9.一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-6中任一所述的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016231.8A CN113626173B (zh) | 2021-08-31 | 2021-08-31 | 调度方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016231.8A CN113626173B (zh) | 2021-08-31 | 2021-08-31 | 调度方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626173A CN113626173A (zh) | 2021-11-09 |
CN113626173B true CN113626173B (zh) | 2023-12-12 |
Family
ID=78388716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111016231.8A Active CN113626173B (zh) | 2021-08-31 | 2021-08-31 | 调度方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626173B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794339A (zh) * | 2022-11-21 | 2023-03-14 | 贵州电网有限责任公司 | 云计算任务跟踪处理方法及系统 |
CN116107724B (zh) * | 2023-04-04 | 2023-07-18 | 山东浪潮科学研究院有限公司 | 一种ai加速核调度管理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330583B1 (en) * | 1994-09-09 | 2001-12-11 | Martin Reiffin | Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks |
CN102567396A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种基于云计算的数据挖掘方法、系统及装置 |
CN104133724A (zh) * | 2014-04-03 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 并发任务调度方法及装置 |
CN110405756A (zh) * | 2019-06-28 | 2019-11-05 | 炬星科技(深圳)有限公司 | 一种任务调度方法、装置、系统、电子设备及存储介质 |
CN111061553A (zh) * | 2019-12-17 | 2020-04-24 | 湖南大学 | 一种用于超级计算中心的并行任务调度方法和系统 |
CN112035230A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 一种任务调度文件生成方法、装置及存储介质 |
CN113254178A (zh) * | 2021-06-01 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-08-31 CN CN202111016231.8A patent/CN113626173B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330583B1 (en) * | 1994-09-09 | 2001-12-11 | Martin Reiffin | Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks |
CN102567396A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种基于云计算的数据挖掘方法、系统及装置 |
CN104133724A (zh) * | 2014-04-03 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 并发任务调度方法及装置 |
CN110405756A (zh) * | 2019-06-28 | 2019-11-05 | 炬星科技(深圳)有限公司 | 一种任务调度方法、装置、系统、电子设备及存储介质 |
CN111061553A (zh) * | 2019-12-17 | 2020-04-24 | 湖南大学 | 一种用于超级计算中心的并行任务调度方法和系统 |
CN112035230A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 一种任务调度文件生成方法、装置及存储介质 |
CN113254178A (zh) * | 2021-06-01 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113626173A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783229B (zh) | 线程资源分配的方法及装置 | |
WO2020211579A1 (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CN110727512A (zh) | 集群资源调度方法、装置、设备及储存介质 | |
CN107222531B (zh) | 一种容器云资源调度方法 | |
CN113626173B (zh) | 调度方法、装置及存储介质 | |
CN110389843B (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
US11838384B2 (en) | Intelligent scheduling apparatus and method | |
CN111274015A (zh) | 一种配置方法、装置和数据处理服务器 | |
CN106383764B (zh) | 一种数据采集方法和设备 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN110851236A (zh) | 一种实时资源调度方法、装置、计算机设备及存储介质 | |
US10778807B2 (en) | Scheduling cluster resources to a job based on its type, particular scheduling algorithm,and resource availability in a particular resource stability sub-levels | |
CN111611050A (zh) | 一种信息处理方法、装置、设备及存储介质 | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
CN111124687A (zh) | 一种cpu资源预留方法、装置及其相关设备 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN115827183A (zh) | 一种基于组合优化的混合容器云环境下Serverless服务调度系统 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN108028806A (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN114721824A (zh) | 一种资源分配方法、介质以及电子设备 | |
US20150212859A1 (en) | Graphics processing unit controller, host system, and methods | |
Hsiao et al. | A usage-aware scheduler for improving MapReduce performance in heterogeneous environments | |
CN108429704B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40060986 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |