CN113110927A - 一种任务调度方法、装置、计算机设备和存储介质 - Google Patents
一种任务调度方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113110927A CN113110927A CN202110420776.9A CN202110420776A CN113110927A CN 113110927 A CN113110927 A CN 113110927A CN 202110420776 A CN202110420776 A CN 202110420776A CN 113110927 A CN113110927 A CN 113110927A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- execution
- resource
- resource occupation
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000012216 screening Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 description 57
- 230000000694 effects Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000002688 persistence Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种任务调度方法、装置、计算机设备和存储介质,其中,该方法包括:获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;在资源占用时长内,控制标识信息对应的执行服务器执行第一任务;基于资源占用时长,向调度器发送继续执行第一任务的续约请求。本公开实施例通过向调度器发送续约请求,可以实现在第一任务未完成时,释放第一任务占用的资源,能够增加资源释放量,令每一待执行的任务都能合理的分配到资源占用时长,为待执行的任务提供服务响应的时间保证。同时,第一任务在资源占用时长内被执行,不会被更高优先级的其他任务中断停止,提高了执行每一任务的相对公平性。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种任务调度方法、装置、计算机设备和存储介质。
背景技术
在云平台调度系统中调度大量用户提供的任务,可以根据任务需求,为该任务分配资源,并选择可执行的服务器,直至该任务运行完成。由于,被调度的任务可能具有不同资源需求和不同的运行时间,且资源的释放仅在任务完成时发生,所以频繁释放出的资源量往往较少,甚至长时间无法满足资源占用量较大的新任务的需求。针对资源需求量大的新任务,当调度系统无法及时提供满足该任务需求的资源量的情况下,就会因为服务器释放出的资源量不足而出现任务阻塞现象。
发明内容
本公开实施例至少提供一种任务调度方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种任务调度方法,应用于用户端,包括:
获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;
在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求。
该方面,基于续约请求可以实现在第一任务未被执行完成时,释放第一任务占用的资源,增加频繁释放出的资源量,令每一待执行的任务都能合理的分配到资源占用时长,为待执行的任务提供服务响应的时间保证,保证在较短的时间内满足资源占用量较大的新任务的资源需求。同时,第一任务在资源占用时长内被执行,不会被更高优先级的其他任务中断停止,提高了执行每一任务的相对公平性。
一种可选的实施方式中,在向所述调度器发送所述续约请求之后,还包括:
在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
该实施方式,续约请求续约失败,说明在多个待执行的任务中存在某一任务的执行优先级高于当前执行的第一任务,因此释放执行该第一任务的目标资源,能够增加频繁释放出的资源量,进而满足当前优先级高的任务被执行的条件,保证了每一任务被执行的相对公平性,同时能够有效避免资源占用量较大的新任务被严重延期执行的状况。
一种可选的实施方式中,所述在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源,包括:
在确定所述续约请求续约失败的情况下,向所述执行服务器发送删除所述第一任务的删除请求,以使所述执行服务器按照所述删除请求删除所述第一任务,并释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,在向所述调度器发送所述续约请求之后,还包括:
在确定所述续约请求续约失败的情况下,保存所述第一任务执行过程中产生的数据、以及第一任务运行所述资源占用时长后的执行状态信息。
该实施方式,当继续执行第一任务的续约请求续约失败的情况下,通过用户端保存第一任务执行过程中产生的数据、以及第一任务当前的执行状态信息,能够保证下一次执行该第一任务能够在当前执行状态下继续执行,节省重复执行第一任务的时间,提高任务执行效率。
一种可选的实施方式中,所述在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源,包括:
响应于所述调度器针对所述续约请求反馈的续约失败信息,控制所述执行服务器释放执行所述第一任务所用的目标资源,或者,
在向所述调度器发送所述续约请求后的预设时长内,未接收到所述调度器针对所述续约请求反馈的信息的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
该实施方式,可以通过一种或多种不同的方式响应续约请求续约失败,并释放执行第一任务的目标资源,能够增加频繁释放出的资源量,能够在较短的时间内满足资源占用量较大的新任务的资源需求。
一种可选的实施方式中,在向所述调度器发送所述续约请求之后,还包括:
响应于所述调度器针对所述续约请求反馈的续约成功信息以及新的资源占用时长,在所述新的资源占用时长内,控制所述执行服务器继续执行所述第一任务。
该实施方式,在续约成功的情况下,说明该第一任务的执行优先级最高,能够被继续执行,提高了该第一任务的执行效率,能够有效避免频繁被其他任务抢占资源所造成的中断阻塞现象的产生。
一种可选的实施方式中,所述基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求,包括:
获取所述执行服务器执行所述第一任务的目标执行时长;
确定所述目标执行时长与所述资源占用时长之间的差值;
在所述差值小于预设阈值的情况下,向所述调度器发送继续执行所述第一任务的续约请求。
该实施方式,在目标执行时长与资源占用时长之间的差值小于预设阈值的情况下,即在即将执行完第一任务之前,向调度器发送继续执行第一任务的续约请求,这样能够尽可能的保证发送的每一续约请求对应的第一任务都是未曾执行完,需要继续执行的任务。
第二方面,本公开实施例还提供一种任务调度方法,应用于调度器,包括:
从多个待执行任务中筛选第一任务,并确定执行所述第一任务的执行服务器;
向所述第一任务对应的用户端发送所述第一任务的标识符、所述第一任务的资源占用时长以及所述执行服务器的标识信息,以使所述用户端在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
响应于所述用户端发送的继续执行所述第一任务的续约请求,从当前的待执行任务中筛选第二任务;
在所述第二任务与所述第一任务不为同一个任务时,向所述用户端发送续约失败信息,以利用所述用户端控制所述执行服务器释放执行所述第一任务所用的目标资源。
该方面通过向用户端发送预先设置的第一任务的资源占用时长,令每一待执行任务都能合理的分配到资源占用时长,为待执行任务提供服务响应的时间保证;同时该方面不仅提高了执行每一任务的相对公平性,在第二任务与第一任务不为同一个任务时,还能够利用用户端控制执行服务器释放目标资源,实现资源量的频繁释放,能够保证在较短的时间内满足资源占用量较大的新任务的资源需求,避免队首阻塞现象的产生。
一种可选的实施方式中,在筛选得到所述第二任务之后,还包括:
在所述第二任务与所述第一任务不为同一个任务时,不针对所述续约请求向所述用户端发送信息。
该实施方式,在第二任务与第一任务不为同一个任务时,说明第一任务续约请求续约失败,此时,可以灵活地选择告知用户端续约失败的方式,其中一种方式为不针对续约请求向用户端发送信息。
一种可选的实施方式中,在筛选得到所述第二任务之后,还包括:
在所述第二任务与所述第一任务为同一个任务时,向所述用户端发送续约成功信息以及新的资源占用时长,以使所述用户端按照所述新的资源占用时长,控制所述执行服务器继续执行所述第一任务。
该实施方式,在第二任务与第一任务为同一个任务时,说明第一任务续约请求成功,由于第一任务被续约成功,说明该第一任务在多个待执行任务中的优先级最高,可以被继续执行,保证了该任务的执行效率。
一种可选的实施方式中,所述从多个待执行任务中筛选第一任务,包括:
将所述多个待执行任务中已经开始执行的任务作为第三任务,将所述多个待执行任务中未开始执行的任务作为第四任务;
基于所述第三任务执行第一个资源占用时长的开始时间和所述从多个待执行任务中筛选第一任务的开始筛选时间,确定所述第三任务的执行优先级;
将所述第四任务的执行优先级设置为预设优先级;
基于所述第三任务的执行优先级和所述第四任务的执行优先级,筛选所述第一任务。
该实施方式,由于已经开始执行的任务和未开始执行的任务属于两类任务集群,因此,利用不同的方式计算二者的执行优先级,能够较为合理准确地确定第三任务和第四任务的优先级,从而能够合理地从中筛选出最高优先级的第一任务,确保每一待执行任务都能被公平的调度。
一种可选的实施方式中,所述基于所述第三任务执行第一个资源占用时长的开始时间和所述从多个待执行任务中筛选第一任务的开始筛选时间,确定所述第三任务的执行优先级,包括:
获取多个节点服务器的资源量和所述第三任务的预设权重;所述多个节点服务器包括所述执行服务器;
基于所述多个节点服务器的资源量和所述第三任务的预设权重,确定所述第三任务的可用资源量;
基于所述第三任务执行第一个资源占用时长的开始时间、所述从多个待执行任务中筛选第一任务的开始筛选时间、所述第三任务的可用资源量、以及所述第三任务的资源需求量,确定所述第三任务的执行优先级。
该实施方式,由于第三任务是待执行任务中已经开始执行的任务,因此其优先级与其已经执行的时长和资源需求量有关,具体地,利用第三任务执行第一个资源占用时长的开始时间、从多个待执行任务中筛选第一任务的开始筛选时间、第三任务的可用资源量和第三任务的资源需求量,能够准确、合理地计算出第三任务的执行优先级。
第三方面,本公开实施例还提供一种任务调度装置,包括:
获取模块,用于获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;
执行模块,用于在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
第一发送模块,用于基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求。
一种可选的实施方式中,所述任务调度装置还包括资源释放模块,用于在向所述调度器发送所述续约请求之后,在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述资源释放模块,用于在确定所述续约请求续约失败的情况下,向所述执行服务器发送删除所述第一任务的删除请求,以使所述执行服务器按照所述删除请求删除所述第一任务,并释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述任务调度装置还包括保存模块,用于在向所述调度器发送所述续约请求之后,在确定所述续约请求续约失败的情况下,保存所述第一任务执行过程中产生的数据、以及第一任务运行所述资源占用时长后的执行状态信息。
一种可选的实施方式中,所述资源释放模块,用于响应于所述调度器针对所述续约请求反馈的续约失败信息,控制所述执行服务器释放执行所述第一任务所用的目标资源,或者,在向所述调度器发送所述续约请求后的预设时长内,未接收到所述调度器针对所述续约请求反馈的信息的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述任务调度装置还包括继续执行任务模块,用于在向所述调度器发送所述续约请求之后,响应于所述调度器针对所述续约请求反馈的续约成功信息以及新的资源占用时长,在所述新的资源占用时长内,控制所述执行服务器继续执行所述第一任务。
一种可选的实施方式中,所述继续执行任务模块,用于获取所述执行服务器执行所述第一任务的目标执行时长;确定所述目标执行时长与所述资源占用时长之间的差值;在所述差值小于预设阈值的情况下,向所述调度器发送继续执行所述第一任务的续约请求。
第四方面,本公开实施例还提供一种任务调度装置,包括:
第一筛选模块,用于从多个待执行任务中筛选第一任务,并确定执行所述第一任务的执行服务器;
第二发送模块,用于向所述第一任务对应的用户端发送所述第一任务的标识符、所述第一任务的资源占用时长以及所述执行服务器的标识信息,以使所述用户端按照所述资源占用时长,控制所述标识信息对应的执行服务器执行所述第一任务;
第二筛选模块,用于响应于所述用户端发送的继续执行所述第一任务的续约请求,从当前的待执行任务中筛选第二任务;
第三发送模块,用于在所述第二任务与所述第一任务不为同一个任务时,向所述用户端发送续约失败信息,以利用所述用户端控制所述执行服务器释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述第三发送模块,还用于在筛选得到所述第二任务之后,在所述第二任务与所述第一任务不为同一个任务时,不针对所述续约请求向所述用户端发送信息。
一种可选的实施方式中,所述第三发送模块,还用于在筛选得到所述第二任务之后,在所述第二任务与所述第一任务为同一个任务时,向所述用户端发送续约成功信息以及新的资源占用时长,以使所述用户端按照所述新的资源占用时长,控制所述执行服务器继续执行所述第一任务。
一种可选的实施方式中,所述第一筛选模块,用于将所述多个待执行任务中已经开始执行的任务作为第三任务,将所述多个待执行任务中未开始执行的任务作为第四任务;基于所述第三任务执行第一个资源占用时长的开始时间和所述从多个待执行任务中筛选第一任务的开始筛选时间,确定所述第三任务的执行优先级;将所述第四任务的执行优先级设置为预设优先级;基于所述第三任务的执行优先级和所述第四任务的执行优先级,筛选所述第一任务。
一种可选的实施方式中,所述第一筛选模块,用于获取多个节点服务器的资源量和所述第三任务的预设权重;所述多个节点服务器包括所述执行服务器;基于所述多个节点服务器的资源量和所述第三任务的预设权重,确定所述第三任务的可用资源量;基于所述第三任务执行第一个资源占用时长的开始时间、所述从多个待执行任务中筛选第一任务的开始筛选时间、所述第三任务的可用资源量、以及所述第三任务的资源需求量,确定所述第三任务的执行优先级。
第五方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面和第二方面中任一种可能的实施方式中的步骤。
第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面和第二方面中任一种可能的实施方式中的步骤。
关于上述任务调度装置、计算机设备和存储介质的效果描述参见上述任务调度方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种任务调度方法的流程图;
图2示出了本公开实施例所提供的向调度器发送继续执行第一任务的续约请求的流程图;
图3示出了本公开实施例所提供的另一种任务调度方法的流程图;
图4示出了本公开实施例所提供的按照待执行任务的不同优先级筛选第一任务的流程图;
图5示出了本公开实施例所提供的确定资源占用时长的流程图;
图6示出了本公开实施例所提供的不同预设执行时长、同一组目标任务执行完成后的效果图;
图7示出了本公开实施例所提供的一种任务调度装置的示意图;
图8示出了本公开实施例所提供的另一种任务调度装置的示意图;
图9示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,现有技术中针对任务阻塞的解决方法有:1、当需要运行等待时间过久的任务时,为了满足该任务运行所需要的资源需求,调度器通过抢占的方式中断正在运行的任务,释放被抢占任务的执行资源,从而达到执行等待时间过久的任务的条件。但是,如果被抢占任务频繁被中断,就会持续延迟该任务,不能保证各个任务被公平的调度。另外,在利用抢占的调度方式时,如果不能合理的选择被抢占的任务,比如选择被抢占的任务为即将运行完成的任务,则被抢占之后下一次执行时需要重新被执行,极大的降低任务运行效率。2、可以通过预先保留资源,不调度新的任务,持续等待当前资源量满足即将执行的任务需求,在执行该任务。此方式,由于新释放的资源被预留给即将执行的任务,会导致释放的资源长时闲置,极大的降低了执行服务器中资源的利用率。
基于上述研究,本公开提供了一种任务调度方法、装置、计算机设备和存储介质,在执行主体为用户端时,其基于续约请求可以实现在第一任务未被执行完成时,释放第一任务占用的资源,增加频繁释放出的资源量,令每一待执行的任务都能合理的分配到资源占用时长,为待执行的任务提供服务响应的时间保证,保证在较短的时间内满足资源占用量较大的新任务的资源需求。同时,第一任务在资源占用时长内被执行,不会被更高优先级的其他任务中断停止,提高了执行每一任务的相对公平性。
在其执行主体是调度器时,还能通过向用户端发送预先设置的第一任务的资源占用时长,令每一待执行任务都能合理的分配到资源占用时长,为待执行任务提供服务响应的时间保证;同时,不仅提高了执行每一任务的相对公平性,在第二任务与第一任务不为同一个任务时,还能够利用用户端控制执行服务器释放目标资源,实现资源量的频繁释放,能够保证在较短的时间内满足资源占用量较大的新任务的资源需求,避免队首阻塞现象的产生。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所提供的一种任务调度方法的应用场景进行详细的介绍。本公开实施例所提供的任务调度方法可以被应用在云平台调度系统中,例如Kubernetes系统。用户可以通过提交一个预先定义的配置文件,利用Kubernetes系统能够自动创建出相关的任务,如下述的待执行任务,Kubernetes系统可以将新创建的每一个任务按照预先定义的排序策略,放入任务队列中等待执行。其中预先定义的任务排序策略可以为按照时间顺序将任务放入任务队列中或者按照任务优先级由高到低顺序将任务放入任务队列中等。再经过Kubernetes系统中调度器提供的调度策略(比如,按照优先级的高低进行调度),最终为创建出的每一个任务对应选择出执行该任务的节点服务器。通过Kubernetes系统中的用户端请求执行第一任务,此时,调度器将该第一任务调度到能够执行该第一任务的执行服务器上进行执行直至完成。这里,节点服务器包括执行服务器,节点服务器为执行每一个任务的服务器,包括全部的执行服务器;执行服务器为执行第一任务的服务器。
这里,kubernetes,简称K8s,是用8代替8个字符“kubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用。
下面以执行主体为用户端为例对本公开实施例提供的任务调度方法加以说明。
参见图1所示,为本公开实施例提供的一种任务调度方法的流程图,所述方法包括步骤S101~S103,其中:
S101:获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息。
本步骤中,资源占用时长可以为预先设置的执行服务器执行第一任务的一段时长,并且该资源占用时长可以是通过调度器为用户端分配的一段时长。
通过用户端请求执行第一任务,再利用执行服务器按照该用户端的请求和配置文件的配置内容,对应执行第一任务。这里,执行服务器执行第一任务的过程中需要占用第一任务所需的资源量。配置文件的配置内容可以包括指示第一任务启动的内容等。
这里,获取执行服务器的标识信息,可以利用该标识信息为第一任务指示能够执行第一任务的执行服务器。其中,执行服务器的标识信息可以为该执行服务器的名称或身份标识号id。
示例性的,第一任务可以为用户提交的不同功能的任务,比如深度学习任务等。
S102:在资源占用时长内,控制标识信息对应的执行服务器执行第一任务。
本步骤中,执行服务器可以为调度器根据调度策略为第一任务选择出的执行第一任务的节点服务器。示例性的,该节点服务器包含了处理器、内存资源和GPU资源等。
示例性的,由于用户端具有控制第一任务运行与否的功能,因此在用户端请求执行第一任务的情况下,在一个资源占用时长内,执行服务器可以根据用户端的请求和配置文件的配置内容,通过标识信息对应的执行服务器,对应执行第一任务。
S103:基于资源占用时长,向调度器发送继续执行第一任务的续约请求。
具体实施时,在执行每一个第一任务时,可以以执行一段资源占用时长为前提,如果该第一任务在资源占用时长内即将执行完成时,则可以向调度器发送继续执行第一任务的续约请求;如果该第一任务在执行了一段目标执行时长后就已经执行完成,并且目标执行时长与资源占用时长之间的差值大于或等于预设阈值的情况下,则可以不必向调度器发送继续执行第一任务的续约请求,利用调度器直接执行新一轮的调度任务。
示例性的,以运行在Kubernetes系统中的深度学习任务为例,调度器通过为深度学习任务提供给定资源占用时长(租期)内服务的机制,即调度器在给深度学习任务分配资源时,加入租期,深度学习任务将仅获得租期时间内的资源保证,用户端会在深度学习任务的租期即将到期时发起续约请求,另外,由调度器决定是否允许第一任务续约继续执行。
在一些实施例中,如果该第一任务在资源占用时长内即将执行完成,则可以向调度器发送继续执行第一任务的续约请求。具体实施时,可以参见图2所示,其为向调度器发送继续执行第一任务的续约请求的流程图。
S201:获取执行服务器执行第一任务的目标执行时长。
本步骤中,目标执行时长为第一任务在一个资源占用时长内被执行服务器执行的一段时长,该目标执行时长可以小于或等于资源占用时长。
S202:确定目标执行时长与资源占用时长之间的差值。
S203:在差值小于预设阈值的情况下,向调度器发送继续执行第一任务的续约请求。
这里,预设阈值可以根据经验值设定,在此不进行具体限定。需要说明的是,预设阈值的设定需要满足的条件是,在第一任务即将执行完之前,向调度器发送继续执行第一任务的续约请求。这样能够尽可能的保证发送的每一续约请求对应的第一任务都是未曾执行完,需要继续执行的任务。
其中,预设阈值可以根据经验值设定,在此不进行具体限定。
示例性的,在已知资源占用时长为1200秒的情况下,可以令预设阈值为2秒,则在执行第一任务0~1198秒以内,且还未执行完成的情况下,可以向调度器发送继续执行第一任务的续约请求。
延续上述步骤S103,在向调度器发送续约请求之后,在确定续约请求续约失败的情况下,可以控制执行服务器释放执行第一任务所用的目标资源。示例性的,由于用户端具有控制第一任务运行与否的功能,因此在确定当前续约请求续约失败的情况下,第一任务在下一资源占用时长内不再执行,并允许执行服务器释放执行第一任务所用的目标资源。这里,续约请求续约失败,说明在多个待执行的任务中存在某一任务的执行优先级高于当前执行的第一任务,因此释放执行该第一任务的目标资源,能够增加频繁释放出的资源量,进而满足当前优先级高的任务被执行的条件,保证了每一任务被执行的相对公平性,同时能够有效避免资源占用量较大的新任务被严重延期执行的状况。
在一些实施例中,在向调度器发送续约请求之后,该第一任务可能续约成功,也可能续约失败,其中:
续约失败的情况可以为:接收到针对续约请求反馈的续约失败信息,或者在向调度器发送续约请求后的预设时长内,未接收到调度器针对续约请求反馈的信息。具体实施时,可以通过一种或多种不同的方式响应续约请求续约失败,比如响应于调度器针对续约请求反馈的续约失败信息,可以控制执行服务器释放执行第一任务所用的目标资源,或者,在向调度器发送续约请求后的预设时长内,未接收到调度器针对续约请求反馈的信息的情况下,可以控制执行服务器释放执行第一任务所用的目标资源,能够增加频繁释放出的资源量,并能够在较短的时间内满足资源占用量较大的新任务的资源需求。其中,预设时长可以根据经验值进行设定,在此不进行具体限定。
这里,用户端控制执行服务器释放执行第一任务所用的目标资源,具体控制过程如下:用户端在确定续约请求续约失败的情况下,可以向执行服务器发送删除第一任务的删除请求,之后,执行服务器可以按照用户端发送的删除请求删除第一任务,由于执行服务器不用再执行第一任务了,所以执行服务器释放出了执行第一任务所用的目标资源。
续约成功的情况可以为:接收到针对续约请求反馈的续约成功信息。具体实施时,响应于调度器针对续约请求反馈的续约成功信息以及新的资源占用时长,在新的资源占用时长内,可以控制执行服务器继续执行第一任务。示例性的,由于用户端具有控制第一任务运行与否的功能,因此在确定当前续约请求续约成功的情况下,用户端可以重置计时器为新的资源占用时长,并在新的资源占用时长内,控制执行服务器继续执行第一任务。具体控制过程可以为,用户端向执行服务器发送继续执行第一任务的请求,执行服务器可以按照该请求的指示,并根据配置文件提供的配置内容,继续执行第一任务。这里,续约成功,说明该第一任务的执行优先级最高,能够被继续执行,在此基础上,提高了该第一任务的执行效率,能够有效避免频繁被其他任务抢占资源所造成的中断阻塞现象的产生。
在一些实施例中,在确定续约请求续约失败的情况下,还可以对当前已经执行了资源占用时长的第一任务做数据保存处理。具体实施时,可以将续约失败的第一任务保存其执行过程中产生的数据、以及第一任务运行资源占用时长后的执行状态信息,保证下一次请求执行该第一任务时,能够令执行服务器在当前执行状态下继续执行,节省重复执行第一任务的时间,提高任务执行效率。其中,执行状态信息可以是第一任务已经被执行的任务部分和未被执行的任务部分的状态信息,用于为后续该第一任务执行新的资源占用时长时,提供继续执行未被执行的任务部分的信息,之后,执行服务器可以根据该第一任务的执行状态信息,在新的资源占用时长内,仅执行未被执行的任务部分。之后,允许执行服务器终止当前第一任务的执行,并释放目标资源。
上述步骤S101~步骤S103,基于续约请求可以实现在第一任务未被执行完成时,释放第一任务占用的资源,增加频繁释放出的资源量,令每一待执行的任务都能合理的分配到资源占用时长,为待执行的任务提供服务响应的时间保证,保证在较短的时间内满足资源占用量较大的新任务的资源需求。同时,第一任务在资源占用时长内被执行,不会被更高优先级的其他任务中断停止,提高了执行每一任务的相对公平性。
下面以执行主体为调度器为例对本公开实施例提供的任务调度方法加以说明。
参见图3所示,为本公开实施例提供的另一种任务调度方法的流程图,所述方法包括步骤S301~S304,其中:
S301:从多个待执行任务中筛选第一任务,并确定执行第一任务的执行服务器。
这里,系统可以根据用户提交的预先定义的配置文件自动创建出多个待执行任务,之后将多个待执行任务放入任务队列中等待执行。
本步骤中,从多个待执行任务中筛选第一任务可以有多种不同的筛选策略,比如可以通过为每一个待执行任务分别定义优先级,之后通过优先级的高低从多个待执行任务选出最高优先级的任务作为第一任务。或者,比如可以按照用户需求,直接排列待执行任务的执行顺序,在任务执行时可以直接将队首的任务作为第一任务等。
这里,可以知道每一个待执行任务的资源需求量,因此可以按照第一任务的资源需求量为第一任务分配执行服务器。
S302:向第一任务对应的用户端发送第一任务的标识符、第一任务的资源占用时长以及执行服务器的标识信息,以使用户端在资源占用时长内,控制标识信息对应的执行服务器执行第一任务。
本步骤中,在调度器已经从任务队列中筛选出第一任务后,可以得到该第一任务的标识符,调度器可以利用第一任务的标识符为第一任务提供给定资源占用时长内的服务机制,能够为第一任务提供服务响应的时间保证。同时,还为该第一任务选择指定执行的执行服务器,并记录该执行服务器的标识信息。
这里,当调度器已知第一任务的标识符、第一任务的资源占用时长以及执行服务器的标识信息时,将上述信息对应发送给该第一任务对应的用户端。示例性的,当用户端请求执行第一任务时,调度器调度该第一任务到标识信息对应的执行服务器,以利用执行服务器执行该第一任务。
S303:响应于用户端发送的继续执行第一任务的续约请求,从当前的待执行任务中筛选第二任务。
已知当系统接收到用户提交的预先定义的配置文件时,会自动创建相关的待执行任务,并放入到任务队列中,另外,针对请求续约的第一任务,也会放入任务队列中,因此在系统任务队列中的待执行任务是处于实时更新的状态,在调度器响应于用户端发送的继续执行第一任务的续约请求的情况下,可以从当前已经处于更新状态后的多个待执行任务中筛选出第二任务。这里,该第二任务可以是刚刚执行完一个资源占用时长的第一任务,或者,还可以是任务队列中除了刚刚执行完的第一任务的其他待执行任务。
S304:在第二任务与第一任务不为同一个任务时,向用户端发送续约失败信息,以利用用户端控制执行服务器释放执行第一任务所用的目标资源。
本步骤中,在筛选出的第二任务是任务队列中除了刚刚执行完的第一任务的其他待执行任务时,可以向用户端发送续约失败信息,当用户端接收到第一任务续约失败信息时,用户端可以允许执行服务器释放执行第一任务所用的目标资源,之后,调度器准备执行新一轮的调度,当用户端请求执行第二任务时,调度器调度第二任务到其指定的执行服务器执行该第二任务。
在一种可能的实施方式中,在第二任务与第一任务不为同一个任务时,还可以不针对续约请求向用户端发送信息,在接收到用户端发送的继续执行第一任务的续约请求之后的一段预设时长内,用户端还未接收到针对续约请求的反馈的信息的情况下,可以自动认为续约请求失败。这里,可以灵活选择告知用户端续约失败的方式。
在另一种可能的实施方式中,在第二任务与第一任务为同一个任务时,可以向用户端发送续约成功信息以及新的资源占用时长,以使用户端按照新的资源占用时长,控制执行服务器继续执行第一任务。具体实施时,在调度器筛选出的第二任务是第一任务时,可以直接向用户端发送续约成功信息以及为第一任务提供的新的资源占用时长,表示允许第一任务继续执行一段新的资源占用时长。此时,用户端按照新的资源占用时长重置计时器,并在新的资源占用时长内,向执行服务器发送继续执行第一任务的请求,执行服务器可以按照该请求的指示,并根据配置文件提供的配置内容,继续执行第一任务。这里,由于第一任务被续约成功,说明该第一任务在多个待执行任务中的优先级最高,可以被继续执行,因此,利用续约请求还可以保证任务的执行效率。
上述步骤S301~步骤S304通过向用户端发送预先设置的第一任务的资源占用时长,令每一待执行任务都能合理的分配到资源占用时长,为待执行任务提供服务响应的时间保证;同时该方面不仅提高了执行每一任务的相对公平性,在第二任务与第一任务不为同一个任务时,还能够利用用户端控制执行服务器释放目标资源,实现资源量的频繁释放,能够保证在较短的时间内满足资源占用量较大的新任务的资源需求,避免队首阻塞现象的产生。
基于上述步骤S301,从多个待执行任务中筛选第一任务,参见图4所示,其为按照待执行任务的不同优先级筛选第一任务的流程图,其中,筛选过程如步骤S401~步骤S404所示:
S401:将多个待执行任务中已经开始执行的任务作为第三任务,将多个待执行任务中未开始执行的任务作为第四任务。
本步骤中,多个待执行任务中已经开始执行的任务可以是在任务队列中准备执行、且已经执行过资源占用时长后的任务,将该任务作为第三任务。多个待执行任务中未开始执行的任务可以是任务队列更新后系统新创建的任务,此时新创建的任务还未被执行过,可以将该任务作为第四任务。
S402:基于第三任务执行第一个资源占用时长的开始时间和从多个待执行任务中筛选第一任务的开始筛选时间,确定第三任务的执行优先级。
本步骤中,第三任务执行第一个资源占用时长的开始时间为第三任务第一次被执行一个资源占用时长时的开始时间,记为t1。从多个待执行任务中筛选第一任务的开始筛选时间为在第三任务执行之后,调度器执行新一轮调度的过程中从任务队列中的多个待执行任务中再次筛选第一任务的开始时间记为t2。
确定第三任务的执行优先级,可以参照以下步骤做详细说明:
步骤1、获取多个节点服务器的资源量和第三任务的预设权重;其中,多个节点服务器包括执行服务器。
这里,多个节点服务器包括系统中用于执行任务的全部执行服务器。多个节点服务器的资源量包括用于执行任务的资源总量,记为R。
这里,可以按照用户需求和/或第三任务需要被执行的紧急程度,设置第三任务的预设权重。其中,可以将第i个第三任务的预设权重记为ωi,i表示第i个第三任务。
示例性的,在已知有4个第三任务,每一个第三任务在自动创建时,按照被执行的紧急程度设置在任务队列中顺序排列的第1个第三任务的预设权重为1,设置第2个第三任务的预设权重为2,设置第3个第三任务的预设权重为3,设置第4个第三任务的预设权重为4。
步骤2、基于多个节点服务器的资源量和第三任务的预设权重,确定第三任务的可用资源量。
具体地,可以按照公式(1),确定第i个第三任务的可用资源量si,其中,可用资源量si表示每个第三任务被执行时,系统所能分到的资源量。
其中,k表示第k个待执行任务,n表示任务队列中的待执行任务数量,ωk表示第k个待执行任务的预设权重,i表示第i个第三任务。
延续上例,在已知多个节点服务器的资源量R=16,n=6,其中,在任务队列中前四个顺序排列待执行任务为第三任务,后两个待执行任务为第四任务,第1个第三任务的预设权重为1,设置第2个第三任务的预设权重为2,设置第3个第三任务的预设权重为3,设置第4个第三任务的预设权重为4,设置第五个第四任务的预设权重为2,第六个第四任务的预设权重为4,则可用资源量s1=1、可用资源量s2=2、可用资源量s3=3、可用资源量s4=4。
步骤3、基于第三任务执行第一个资源占用时长的开始时间、从多个待执行任务中筛选第一任务的开始筛选时间、第三任务的可用资源量、以及第三任务的资源需求量,确定第三任务的执行优先级。
这里,在知道第i个第三任务所能分得的可用资源量si、第i个第三任务的资源需求量di、以及从t1到t2时间内第i个第三任务执行时所使用的资源累加量ui(t1,t2)的情况下,可以根据公式(2)确定第i个第三任务的执行优先级βi(t1,t2),其中,i表示第i个第三任务:
这里,资源累加量可以根据公式(3)确定:
其中,ui(t)表示第i个第三任务在t时刻所用的资源量,比如,当第i个第三任务正在执行时,所用的资源量为第三任务的资源需求量,即di,当第i个第三任务没被执行时,所用的资源量为0。示例性的,在第4个第三任务的资源需求量为6的情况下,在一个资源占用时长内1200秒,第4个第三任务的资源累加量
延续上例,在已知第4个第三任务已经执行了一个资源占用时长,在新一轮的调度中,已知t2=2400,要从任务队列中筛选第一任务,则此时第四个第三任务的执行优先级为
同理,任务队列中顺序排列的第1个第三任务、第2个第三任务、第3个第三任务的执行优先级可以参照上述第4个第三任务执行优先级的计算方法,在这里不再一一赘述。
需要说明的是,随着时间的增加,如果第三任务执行完一个资源占用时长后迟迟不再执行,则ui(t1,t2)会一直保持不变,而会持续变大,因此βi(t1,t2)数值会持续减小,但此时由于长时间该第三任务不被执行,因此其执行优先级提高,即βi(t1,t2)数值越小,第三任务的执行优先级越高。
S403:将第四任务的执行优先级设置为预设优先级。
具体地,可以直接将第四任务的执行优先级设置为一个固定值,即预设优先级,比如将第四任务的执行优先级设置为1。
S404:基于第三任务的执行优先级和第四任务的执行优先级,筛选第一任务。
具体实施时,在多个待执行任务中,比较若干个第三任务的执行优先级βi(t1,t2)和第四任务的执行优先级1之间的大小,可以筛选出最高优先级的任务作为第一任务,如果最高优先级为1,且有多个第四任务和/或多个第三任务优先级为1的情况下,可以按照在任务队列中的排列顺序筛选出排列靠前的任务作为第一任务。
由于已经开始执行的第三任务和未开始执行的第四任务属于两类任务集群,因此,利用不同的方式计算二者的执行优先级,能够较为合理准确地确定第三任务和第四任务的优先级,从而能够合理地从中筛选出最高优先级的第一任务,确保每一待执行任务都能被公平的调度。
基于上述步骤S302,参见图5所示,其为确定资源占用时长的流程图,该确定资源占用时长的过程为训练过程,该训练过程的执行主体可以为云平台调度系统,可以按照以下步骤S501~S504确定资源占用时长:
S501:获取若干个训练任务、以及执行服务器执行训练任务的预设执行时长。
具体地,可以将获取到的若干个训练任务设置为一组目标任务放入任务队列中等待执行,训练任务执行期间训练任务的数量保持不变,预设执行时长为一组目标任务每次训练过程中调度器为每一个训练任务分配资源时加入的资源占用时长,用于训练任务获得一段资源占用时长内的资源保证。
其中,每次训练过程的预设执行时长可以不同。
S502:基于预设执行时长,确定若干个训练任务中训练任务运行完成的平均时间。
示例性的,以一组目标任务为例,将该组目标任务中若干个训练任务的数量记为N,调度器可以根据优先级高低从任务队列中的一组目标任务中筛选出第一训练任务,并调度第一训练任务到执行服务器中执行,直到一组目标任务全部执行完成,记录该训练过程完成时间T,则每一训练任务执行完成的平均时间
S503:基于若干个训练任务的数量和执行优先级,确定若干个训练任务的调度效果的反映指标。
其中,训练任务的调度效果的反映指标反应了调度器整体调度过程的效果,反映指标对应的数值越大,说明调度器调度效果越好,每一训练任务在执行过程中都相对公平。
示例性的,可以利用上述步骤S401~步骤S404的方法确定每一个训练任务的执行优先级,之后,可以利用公式(4)确定每一个训练任务的调度效果的反映指标Q:
Q=N'/N 公式(3)
其中,N'表示若干个训练任务的执行优先级大于预设值的个数。这里,在一组目标任务中训练任务的数量不变的情况下,Q值越大,反应了在训练任务执行过程中资源累加量ui(t1,t2)大于应得的资源量的训练任务个数越多,此时,表征能够提供多于所需资源量的训练任务的数量越多,则能够说明调度器调度效果越好。其中,预设值可以按照经验值获取,在本公开实施例中,预设值可以取0.8。
这里训练任务的执行优先级是指该任务完成以后得到的优先级,例如,当某一训练任务完成一共用时5000秒,其中该训练任务只执行了一个资源占用时长1200秒,外加200秒就执行完成了,该训练任务的资源需求量为6,资源可用量为8,则该训练任务的执行优先级可以根据公式(2)求出为0.28。
同理,任务队列中排列的其他训练任务执行完成时可以参照上述训练任务执行优先级的计算方法,在这里不再一一列举。
S504:基于平均时间和反映指标,确定资源占用时长。
示例性的,在针对一组目标任务训练9次的情况下,第一次训练过程可以设置预设执行时长为300秒,第二次训练过程可以设置预设执行时长为800秒,第三次训练过程可以设置预设执行时长为1300秒,第4次训练过程可以设置预设执行时长为1800秒,第五次训练过程可以设置预设执行时长为2300秒,第六次训练过程可以设置预设执行时长为1800秒,第七次训练过程可以设置预设执行时长为3900秒,第八次训练过程可以设置预设执行时长为5400秒,第九次训练过程可以设置预设执行时长为6300秒。可以按照公式计算出每一次训练任务执行完成的平均时间。可以按照公式Q=N'/N计算出每一次训练任务执行完成的调度效果的反映指标,最终得到如图6所示的不同预设执行时长、同一组目标任务执行完成后的效果图,其中五角星对应的曲线表示不同预设执行时长对应下的每一次训练任务执行完成的平均时间叉对应的曲线表示不同预设执行时长对应下的每一次训练任务执行完成的调度效果的反映指标Q。已知训练任务执行完成的平均时间越短,则一组目标任务执行完成的时间越短,即若干个训练任务全部执行完成的效率越高,所以训练任务执行完成的平均时间越短越好;又因为,训练任务执行完成的调度效果的反映指标反应了调度效果和每一训练任务在执行过程中的公平性,反映指标对应的数值越大,说明调度器调度效果越好,每一训练任务在执行过程中都相对公平,所以综合上述两种条件,本公开实施例可以选取资源占用时长为1200秒,在其他实施例中可以对应选取不同的资源占用时长,本公开实施例不进行限定。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与任务调度方法对应的任务调度装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本公开实施例提供的一种任务调度装置的示意图,所述装置包括:获取模块701、执行模块702和第一发送模块703;其中,
获取模块701,用于获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;
执行模块702,用于在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
第一发送模块703,用于基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求。
一种可选的实施方式中,所述任务调度装置还包括资源释放模块704,用于在向所述调度器发送所述续约请求之后,在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述资源释放模块704,用于在确定所述续约请求续约失败的情况下,向所述执行服务器发送删除所述第一任务的删除请求,以使所述执行服务器按照所述删除请求删除所述第一任务,并释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述任务调度装置还包括保存模块705,用于在向所述调度器发送所述续约请求之后,在确定所述续约请求续约失败的情况下,保存所述第一任务执行过程中产生的数据、以及第一任务运行所述资源占用时长后的执行状态信息。
一种可选的实施方式中,所述资源释放模块704,用于响应于所述调度器针对所述续约请求反馈的续约失败信息,控制所述执行服务器释放执行所述第一任务所用的目标资源,或者,在向所述调度器发送所述续约请求后的预设时长内,未接收到所述调度器针对所述续约请求反馈的信息的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述任务调度装置还包括继续执行任务模块706,用于在向所述调度器发送所述续约请求之后,响应于所述调度器针对所述续约请求反馈的续约成功信息以及新的资源占用时长,在所述新的资源占用时长内,控制所述执行服务器继续执行所述第一任务。
一种可选的实施方式中,所述继续执行任务模块706,用于获取所述执行服务器执行所述第一任务的目标执行时长;确定所述目标执行时长与所述资源占用时长之间的差值;在所述差值小于预设阈值的情况下,向所述调度器发送继续执行所述第一任务的续约请求。
参照图8所示,为本公开实施例提供的一种任务调度装置的示意图,所述装置包括:第一筛选模块801、第二发送模块802、第二筛选模块803和第三发送模块804;其中,
第一筛选模块801,用于从多个待执行任务中筛选第一任务,并确定执行所述第一任务的执行服务器;
第二发送模块802,用于向所述第一任务对应的用户端发送所述第一任务的标识符、所述第一任务的资源占用时长以及所述执行服务器的标识信息,以使所述用户端按照所述资源占用时长,控制所述标识信息对应的执行服务器执行所述第一任务;
第二筛选模块803,用于响应于所述用户端发送的继续执行所述第一任务的续约请求,从当前的待执行任务中筛选第二任务;
第三发送模块804,用于在所述第二任务与所述第一任务不为同一个任务时,向所述用户端发送续约失败信息,以利用所述用户端控制所述执行服务器释放执行所述第一任务所用的目标资源。
一种可选的实施方式中,所述第三发送模块804,还用于在筛选得到所述第二任务之后,在所述第二任务与所述第一任务不为同一个任务时,不针对所述续约请求向所述用户端发送信息。
一种可选的实施方式中,所述第三发送模块804,还用于在筛选得到所述第二任务之后,在所述第二任务与所述第一任务为同一个任务时,向所述用户端发送续约成功信息以及新的资源占用时长,以使所述用户端按照所述新的资源占用时长,控制所述执行服务器继续执行所述第一任务。
一种可选的实施方式中,所述第一筛选模块801,用于将所述多个待执行任务中已经开始执行的任务作为第三任务,将所述多个待执行任务中未开始执行的任务作为第四任务;基于所述第三任务执行第一个资源占用时长的开始时间和所述从多个待执行任务中筛选第一任务的开始筛选时间,确定所述第三任务的执行优先级;将所述第四任务的执行优先级设置为预设优先级;基于所述第三任务的执行优先级和所述第四任务的执行优先级,筛选所述第一任务。
一种可选的实施方式中,所述第一筛选模块801,用于获取多个节点服务器的资源量和所述第三任务的预设权重;所述多个节点服务器包括所述执行服务器;基于所述多个节点服务器的资源量和所述第三任务的预设权重,确定所述第三任务的可用资源量;基于所述第三任务执行第一个资源占用时长的开始时间、所述从多个待执行任务中筛选第一任务的开始筛选时间、所述第三任务的可用资源量、以及所述第三任务的资源需求量,确定所述第三任务的执行优先级。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图9所示,为本申请实施例提供的计算机设备的结构示意图,包括:
处理器91、存储器92和总线93。其中,存储器92存储有处理器91可执行的机器可读指令,处理器91用于执行存储器92中存储的机器可读指令,所述机器可读指令被处理器91执行时,处理器91执行下述步骤:
获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;
在资源占用时长内,控制标识信息对应的执行服务器执行第一任务;
基于资源占用时长,向调度器发送继续执行第一任务的续约请求。
或者,执行下述步骤:
从多个待执行任务中筛选第一任务,并确定执行第一任务的执行服务器;
向第一任务对应的用户端发送第一任务的标识符、第一任务的资源占用时长以及执行服务器的标识信息,以使用户端在资源占用时长内,控制标识信息对应的执行服务器执行第一任务;
响应于用户端发送的继续执行第一任务的续约请求,从当前的待执行任务中筛选第二任务;
在第二任务与第一任务不为同一个任务时,向用户端发送续约失败信息,以利用用户端控制执行服务器释放执行第一任务所用的目标资源。
上述存储器92包括内存921和外部存储器922;这里的内存921也称内存储器,用于暂时存放处理器91中的运算数据,以及与硬盘等外部存储器922交换的数据,处理器91通过内存921与外部存储器922进行数据交换,当计算机设备运行时,处理器91与存储器92之间通过总线93通信,使得处理器91在执行上述方法实施例中所提及的执行指令。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务调度方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的任务调度方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种任务调度方法,应用于用户端,其特征在于,包括:
获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;
在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求。
2.根据权利要求1所述的任务调度方法,其特征在于,在向所述调度器发送所述续约请求之后,还包括:
在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
3.根据权利要求2所述的任务调度方法,其特征在于,所述在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源,包括:
在确定所述续约请求续约失败的情况下,向所述执行服务器发送删除所述第一任务的删除请求,以使所述执行服务器按照所述删除请求删除所述第一任务,并释放执行所述第一任务所用的目标资源。
4.根据权利要求1或2任一项所述的任务调度方法,其特征在于,在向所述调度器发送所述续约请求之后,还包括:
在确定所述续约请求续约失败的情况下,保存所述第一任务执行过程中产生的数据、以及第一任务运行所述资源占用时长后的执行状态信息。
5.根据权利要求2所述的任务调度方法,其特征在于,所述在确定所述续约请求续约失败的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源,包括:
响应于所述调度器针对所述续约请求反馈的续约失败信息,控制所述执行服务器释放执行所述第一任务所用的目标资源,或者,
在向所述调度器发送所述续约请求后的预设时长内,未接收到所述调度器针对所述续约请求反馈的信息的情况下,控制所述执行服务器释放执行所述第一任务所用的目标资源。
6.根据权利要求1所述的任务调度方法,其特征在于,在向所述调度器发送所述续约请求之后,还包括:
响应于所述调度器针对所述续约请求反馈的续约成功信息以及新的资源占用时长,在所述新的资源占用时长内,控制所述执行服务器继续执行所述第一任务。
7.根据权利要求1至6任一项所述的任务调度方法,其特征在于,所述基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求,包括:
获取所述执行服务器执行所述第一任务的目标执行时长;
确定所述目标执行时长与所述资源占用时长之间的差值;
在所述差值小于预设阈值的情况下,向所述调度器发送继续执行所述第一任务的续约请求。
8.一种任务调度方法,应用于调度器,其特征在于,包括:
从多个待执行任务中筛选第一任务,并确定执行所述第一任务的执行服务器;
向所述第一任务对应的用户端发送所述第一任务的标识符、所述第一任务的资源占用时长以及所述执行服务器的标识信息,以使所述用户端在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
响应于所述用户端发送的继续执行所述第一任务的续约请求,从当前的待执行任务中筛选第二任务;
在所述第二任务与所述第一任务不为同一个任务时,向所述用户端发送续约失败信息,以利用所述用户端控制所述执行服务器释放执行所述第一任务所用的目标资源。
9.根据权利要求8所述的任务调度方法,其特征在于,在筛选得到所述第二任务之后,还包括:
在所述第二任务与所述第一任务不为同一个任务时,不针对所述续约请求向所述用户端发送信息。
10.根据权利要求8所述的任务调度方法,其特征在于,在筛选得到所述第二任务之后,还包括:
在所述第二任务与所述第一任务为同一个任务时,向所述用户端发送续约成功信息以及新的资源占用时长,以使所述用户端按照所述新的资源占用时长,控制所述执行服务器继续执行所述第一任务。
11.根据权利要求8所述的任务调度方法,其特征在于,所述从多个待执行任务中筛选第一任务,包括:
将所述多个待执行任务中已经开始执行的任务作为第三任务,将所述多个待执行任务中未开始执行的任务作为第四任务;
基于所述第三任务执行第一个资源占用时长的开始时间和所述从多个待执行任务中筛选第一任务的开始筛选时间,确定所述第三任务的执行优先级;
将所述第四任务的执行优先级设置为预设优先级;
基于所述第三任务的执行优先级和所述第四任务的执行优先级,筛选所述第一任务。
12.根据权利要求11所述的任务调度方法,其特征在于,所述基于所述第三任务执行第一个资源占用时长的开始时间和所述从多个待执行任务中筛选第一任务的开始筛选时间,确定所述第三任务的执行优先级,包括:
获取多个节点服务器的资源量和所述第三任务的预设权重;所述多个节点服务器包括所述执行服务器;
基于所述多个节点服务器的资源量和所述第三任务的预设权重,确定所述第三任务的可用资源量;
基于所述第三任务执行第一个资源占用时长的开始时间、所述从多个待执行任务中筛选第一任务的开始筛选时间、所述第三任务的可用资源量、以及所述第三任务的资源需求量,确定所述第三任务的执行优先级。
13.一种任务调度装置,其特征在于,包括:
获取模块,用于获取调度器为用户端请求执行的第一任务分配的资源占用时长,以及执行服务器的标识信息;
执行模块,用于在所述资源占用时长内,控制所述标识信息对应的执行服务器执行所述第一任务;
第一发送模块,用于基于所述资源占用时长,向所述调度器发送继续执行所述第一任务的续约请求。
14.一种任务调度装置,其特征在于,包括:
第一筛选模块,用于从多个待执行任务中筛选第一任务,并确定执行所述第一任务的执行服务器;
第二发送模块,用于向所述第一任务对应的用户端发送所述第一任务的标识符、所述第一任务的资源占用时长以及所述执行服务器的标识信息,以使所述用户端按照所述资源占用时长,控制所述标识信息对应的执行服务器执行所述第一任务;
第二筛选模块,用于响应于所述用户端发送的继续执行所述第一任务的续约请求,从当前的待执行任务中筛选第二任务;
第三发送模块,用于在所述第二任务与所述第一任务不为同一个任务时,向所述用户端发送续约失败信息,以利用所述用户端控制所述执行服务器释放执行所述第一任务所用的目标资源。
15.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至12任一项所述的任务调度方法的步骤。
16.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至12任一项所述的任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110420776.9A CN113110927B (zh) | 2021-04-19 | 2021-04-19 | 一种任务调度方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110420776.9A CN113110927B (zh) | 2021-04-19 | 2021-04-19 | 一种任务调度方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113110927A true CN113110927A (zh) | 2021-07-13 |
CN113110927B CN113110927B (zh) | 2024-08-09 |
Family
ID=76718472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110420776.9A Active CN113110927B (zh) | 2021-04-19 | 2021-04-19 | 一种任务调度方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110927B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048015A (zh) * | 2021-11-16 | 2022-02-15 | 中国银行股份有限公司 | 任务调度方法及装置 |
CN114461053A (zh) * | 2021-08-24 | 2022-05-10 | 荣耀终端有限公司 | 资源调度方法及相关装置 |
CN114567625A (zh) * | 2022-03-01 | 2022-05-31 | 上海创远仪器技术股份有限公司 | 基于安卓Http服务的无线电监测设备控制处理系统、方法、装置、处理器及其存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101730090A (zh) * | 2009-12-24 | 2010-06-09 | 杭州华三通信技术有限公司 | Dhcp服务器释放ip地址的方法及设备 |
CN101997920A (zh) * | 2010-11-18 | 2011-03-30 | 中兴通讯股份有限公司 | Dhcp租约处理方法及装置 |
WO2016184307A1 (zh) * | 2015-05-15 | 2016-11-24 | 中兴通讯股份有限公司 | 一种上行资源分配方法、基站和用户终端 |
CN106993008A (zh) * | 2016-01-20 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种资源调度方法及装置 |
CN109547422A (zh) * | 2018-11-09 | 2019-03-29 | 福建天泉教育科技有限公司 | 一种登录状态自动续约的方法及终端 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110866062A (zh) * | 2018-08-09 | 2020-03-06 | 菜鸟智能物流控股有限公司 | 基于分布式集群的数据同步方法以及装置 |
CN111104222A (zh) * | 2019-12-16 | 2020-05-05 | 上海众源网络有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
CN111478879A (zh) * | 2020-02-29 | 2020-07-31 | 新华三信息安全技术有限公司 | 一种dhcp续约方法、装置及电子设备、机器可读存储介质 |
CN112667376A (zh) * | 2020-12-23 | 2021-04-16 | 数字广东网络建设有限公司 | 任务调度处理方法、装置、计算机设备及存储介质 |
-
2021
- 2021-04-19 CN CN202110420776.9A patent/CN113110927B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101730090A (zh) * | 2009-12-24 | 2010-06-09 | 杭州华三通信技术有限公司 | Dhcp服务器释放ip地址的方法及设备 |
CN101997920A (zh) * | 2010-11-18 | 2011-03-30 | 中兴通讯股份有限公司 | Dhcp租约处理方法及装置 |
WO2016184307A1 (zh) * | 2015-05-15 | 2016-11-24 | 中兴通讯股份有限公司 | 一种上行资源分配方法、基站和用户终端 |
CN106993008A (zh) * | 2016-01-20 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种资源调度方法及装置 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110866062A (zh) * | 2018-08-09 | 2020-03-06 | 菜鸟智能物流控股有限公司 | 基于分布式集群的数据同步方法以及装置 |
CN109547422A (zh) * | 2018-11-09 | 2019-03-29 | 福建天泉教育科技有限公司 | 一种登录状态自动续约的方法及终端 |
CN111104222A (zh) * | 2019-12-16 | 2020-05-05 | 上海众源网络有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
CN111478879A (zh) * | 2020-02-29 | 2020-07-31 | 新华三信息安全技术有限公司 | 一种dhcp续约方法、装置及电子设备、机器可读存储介质 |
CN112667376A (zh) * | 2020-12-23 | 2021-04-16 | 数字广东网络建设有限公司 | 任务调度处理方法、装置、计算机设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461053A (zh) * | 2021-08-24 | 2022-05-10 | 荣耀终端有限公司 | 资源调度方法及相关装置 |
CN114048015A (zh) * | 2021-11-16 | 2022-02-15 | 中国银行股份有限公司 | 任务调度方法及装置 |
CN114567625A (zh) * | 2022-03-01 | 2022-05-31 | 上海创远仪器技术股份有限公司 | 基于安卓Http服务的无线电监测设备控制处理系统、方法、装置、处理器及其存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113110927B (zh) | 2024-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113110927A (zh) | 一种任务调度方法、装置、计算机设备和存储介质 | |
CN110647394B (zh) | 一种资源分配方法、装置及设备 | |
US10572306B2 (en) | Utilization-aware resource scheduling in a distributed computing cluster | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
EP3553657A1 (en) | Method and device for allocating distributed system task | |
US8108869B2 (en) | System and method for enforcing future policies in a compute environment | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
US20070022425A1 (en) | System and method for providing advanced reservations in a compute environment | |
CN111258745B (zh) | 一种任务处理方法及设备 | |
CN111796908A (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
EP2802997A1 (en) | Pricing of resources in virtual machine pools | |
CN111709723B (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
US20070256078A1 (en) | Resource reservation system, method and program product used in distributed cluster environments | |
CN110377415A (zh) | 一种请求处理方法和服务器 | |
CN112073532B (zh) | 一种资源分配的方法及装置 | |
CN111798113A (zh) | 资源分配方法、装置、存储介质和电子设备 | |
CN107665143A (zh) | 资源管理方法、装置及系统 | |
CN115617497B (zh) | 线程处理方法、调度组件、监测组件、服务器和存储介质 | |
CN114064229A (zh) | 集群节点处理方法、系统、设备及介质 | |
CN110532087B (zh) | 一种资源分配方法、资源管理器 | |
CN112527490A (zh) | 节点资源管控方法、装置、电子设备及存储介质 | |
CN113806027B (zh) | 任务编排方法、装置、电子设备和计算机可读存储介质 | |
CN115858169A (zh) | 一种作业资源分配方法、装置、电子设备及存储介质 | |
JP6273732B2 (ja) | 情報処理引き継ぎ制御装置、情報処理引き継ぎ制御方法、及び、情報処理引き継ぎ制御プログラム | |
CN113986458A (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 |