CN111399989A - 一种面向容器云的任务抢占调度方法及系统 - Google Patents
一种面向容器云的任务抢占调度方法及系统 Download PDFInfo
- Publication number
- CN111399989A CN111399989A CN202010279644.4A CN202010279644A CN111399989A CN 111399989 A CN111399989 A CN 111399989A CN 202010279644 A CN202010279644 A CN 202010279644A CN 111399989 A CN111399989 A CN 111399989A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- scheduled
- scheduling
- container cloud
- 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
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/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
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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
技术领域
本发明涉及容器云平台的资源调度管理技术,具体涉及一种面向容器云的任务抢占调度方法及系统。
背景技术
近年来,容器技术及相关应用得到了国内外越来越多的关注度,研发和应用推广发展势头迅猛。在国外,容器技术已经形成了较成熟的生态圈;在国内,金融企业、互联网企业、IT企业积极投入容器技术研发和应用推广,发展势头迅猛。目前基于容器技术的容器云编排调度、自动弹性伸缩、QoS保证、安全与隐私保护等是容器云领域长期的研究重点和难点。其中,面向容器云的任务调度方法会直接影响云平台的业务调度能力和资源使用情况。
目前在市场上面向容器云的传统任务调度模式如图1所示,整个容器云的任务调度体系主要分为两层:容器云任务调度层和容器云资源层。其中容器云任务调度层包括资源管理模块、任务队列模块和任务调度模块等,云平台层包括容器云环境中的池化计算节点,最终的容器任务将会调度到池化计算节点上。在容器云的任务调度管理中,当用户发布一个任务时,容器云平台会将该任务存到容器云任务调度层的任务队列模块中,当资源管理模块统计有足够的资源满足该任务运行时,任务调度模块将该任务以某种最优方式调度到容器云资源层的计算节点上,当资源管理模块统计容器云资源池中无任何节点满足该任务请求的资源时,任务调度模块将标记该任务为“等待”状态,直至容器云资源池中的部分资源释放并能够满足该任务的资源需求时,任务调度模块才将调度该任务至容器云资源池中。
在容器云的传统任务调度环境下,对于资源足够的场景,该种任务调度模式能够满足业务的需求,任何资源需求的业务均能够得到正常的调度,但是对于快速发展的互联网大集群业务或任务要求十分严苛的应用场景,在整体资源使用满负荷时运行一个高优先级任务,由于资源无法满足业务需求,该高优先级的任务将一直处于“等待”状态,无法得到及时的响应,此时需要等待其他的容器任务运行结束后自动释放资源或人工释放优先级较低的容器资源来满足该任务的运行,这对于实时的高优先级任务来说是不可接受的,尤其在国防安全领域,高优先级任务的不及时执行将可能导致毁灭性的灾难,另外当“等待”的容器任务不断增多时,也会影响新的容器任务调度速度,从而影响整体的容器云平台调度性能。
现有的面向容器云的任务调度方法或多或少存在如下缺陷:(1)任务无法调度。在集群满负荷运行时,高优先级的任务无法调度,将导致高优先级的任务无法得到及时的执行,这对于实时的高优先级任务来说是不可接受的。(2)资源无法释放:由于传统的任务调度模式没有抢占调度,在集群满负荷时,如果需要调度高优先级的任务,需要等待低优先级的任务运行结束后自动释放资源或者人工释放低优先级任务资源,无法实现低优先级任务资源的快速自动释放。(3)影响新的任务调度速度。在大规模集群中,当“等待”的任务较多时,这些等待的任务在调度失败后反复的重新加入任务队列并重新调度,将会对新任务的调度速度产生较大影响。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向容器云的任务抢占调度方法及系统,本发明能够在资源满负荷运行的场景下,将低优先级的任务进行销毁,释放计算资源,从而满足高优先级的任务及时执行,同时由于任务的顺利执行使得在任务队列中等待被执行的任务数将极大的减少,有效地提高了任务调度的效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向容器云的任务抢占调度方法,实施步骤包括:
1)通过任务队列存储用户提交的任务;
2)从任务队列中取出一个任务作为待调度任务;
3)判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则跳转执行下一步;
4)通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行步骤2)。
可选地,步骤4)的详细步骤包括:
4.1)采集容器云平台中所有的资源节点的资源和任务运行信息,判断所有资源节点的运行任务中是否有比待调度任务优先级更低的低优先级任务,如果没有则将待调度任务重新加入任务队列中,跳转执行步骤2);否则跳转执行下一步;
4.2)将有比待调度任务优先级更低的低优先级任务的资源节点加入预抢占队列,针对预抢占队列中的各个资源节点,根据各个资源节点的资源和任务运行信息,判断该资源节点销毁其低优先级任务后的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将该资源节点加入抢占队列,如果最终的抢占队列非空则跳转执行步骤4.3);否则将待调度任务重新加入任务队列中,跳转执行步骤2);
4.3)从抢占队列中随机取出的一个资源节点作为当前资源节点;
4.4)在当前资源节点中选择一个比待调度任务优先级更低的低优先级任务,并销毁该低优先级任务;然后销毁该低优先级任务后当前资源节点的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则,跳转执行下一步;
4.5)判断当前资源节点是否仍有可用的低优先级任务,如果仍有可用的低优先级任务则跳转执行步骤4.4);否则,跳转执行下一步;
4.6)判断抢占队列是否为空,如果为空则跳转执行步骤4.3);否则,将待调度任务重新加入任务队列中,跳转执行步骤2)。
可选地,步骤4.1)之前还包括判断待调度任务是否有资格进行抢占调度的步骤,且仅当待调度任务有资格进行抢占调度时才跳转执行步骤4.1),否则将待调度任务重新加入任务队列并跳转执行步骤2)。
可选地,步骤2)中从任务队列中取出一个任务具体是指从任务队列中取出一个优先级最高的任务作为待调度任务,并将其从任务队列中删除。
此外,本发明还提供一种面向容器云的任务抢占调度系统,包括:
任务缓存程序单元,用于通过任务队列存储用户提交的任务;
任务选择程序单元,用于从任务队列中取出一个任务作为待调度任务;
资源判断程序单元,用于判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行任务选择程序单元以选择新的待调度任务;否则跳转执行任务抢占程序单元;
任务抢占程序单元,用于通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行任务选择程序单元。
此外,本发明还提供一种面向容器云的任务抢占调度系统,包括计算机设备,该计算机设备被编程或配置以执行所述面向容器云的任务抢占调度方法的步骤。
此外,本发明还提供一种面向容器云的任务抢占调度系统,包括计算机设备,该计算机设备的存储器中存储有被编程或配置以执行所述面向容器云的任务抢占调度方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述面向容器云的任务抢占调度方法的计算机程序。
此外,本发明还提供一种面向容器云的任务抢占调度系统,包括:
资源管理程序模块,用于采集容器云平台中的资源;
队列管理程序模块,用于管理任务队列,所述任务队列用于存储用户提交的任务;
调度分析程序模块,用于从任务队列中取出一个任务作为待调度任务,判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则调用任务调度模块;否则通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时调用任务调度模块;
任务调度程序模块,用于将待调度任务调度到资源节点上;
容器云资源池,包含多个资源节点,用于执行任务。
和现有技术相比,本发明具有下述优点:
1、本发明通过任务队列存储用户提交的任务;从任务队列中取出一个任务作为待调度任务;判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,否则通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,因此能够在资源满负荷运行的场景下,将低优先级的任务进行销毁,释放计算资源,从而满足高优先级的任务及时执行,同时由于任务的顺利执行使得在任务队列中等待被执行的任务数将极大的减少,有效地提高了任务调度的效率。
2、本发明从生产实际需求考虑,弥补了容器云环境下无法进行任务抢占调度的缺陷。
3、本发明在集群满负荷运行时,为了满足高优先级任务的运行,能够自动的释放低优先级的任务资源,无需等待低优先级任务运行结束后释放资源或人工手动释放资源,提高了任务调度的实时自动化处理能力。
4、本发明能够有效的减少任务调度队列中的任务数,从而提高任务调度运行的速度,在规模大实时性高的集群环境下,具有很强的实用性和扩展性。
附图说明
图1为现有技术中的面向容器云的传统任务调度模式示意图。
图2为本发明实施例方法的基本流程示意图。
图3为本发明实施例方法的系统结构示意图。
图4为本发明实施例中任务抢占调度系统的工作流程图。
具体实施方式
如图2和图4所示,本实施例面向容器云的任务抢占调度方法的实施步骤包括:
1)通过任务队列存储用户提交的任务;
2)从任务队列中取出一个任务作为待调度任务;
3)判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则跳转执行下一步;
4)通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行步骤2)。
图3为本发明实施例方法的系统结构示意图,其中任务抢占调度系统为本实施例面向容器云的任务抢占调度方法的步骤1)~4)的执行主体,而容器云资源池即为任务抢占调度系统调度任务的执行主体,容器云资源池包括多个资源节点(计算节点)。容器云的容器任务将调度到这些计算节点上;任务抢占调度系统主要的功能是采集容器云资源池内所有计算节点的总资源信息和可用资源信息,并通过分析处理,将高优先级的任务最终调度上容器云资源池内的计算节点上,实现高优先级的任务能够及时有效被执行。
本实施例中,步骤4)的详细步骤包括:
4.1)采集容器云平台中所有的资源节点的资源和任务运行信息,判断所有资源节点的运行任务中是否有比待调度任务优先级更低的低优先级任务,如果没有则将待调度任务重新加入任务队列中,跳转执行步骤2);否则跳转执行下一步;
4.2)将有比待调度任务优先级更低的低优先级任务的资源节点加入预抢占队列,针对预抢占队列中的各个资源节点,根据各个资源节点的资源和任务运行信息,判断该资源节点销毁其低优先级任务后的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将该资源节点加入抢占队列,如果最终的抢占队列非空则跳转执行步骤4.3);否则将待调度任务重新加入任务队列中,跳转执行步骤2);
4.3)从抢占队列中随机取出一个资源节点作为当前资源节点;
4.4)在当前资源节点中选择一个比待调度任务优先级更低的低优先级任务,并销毁该低优先级任务;然后销毁该低优先级任务后判断当前资源节点的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则,跳转执行下一步;
4.5)判断当前资源节点是否仍有可用的低优先级任务,如果仍有可用的低优先级任务则跳转执行步骤4.4);否则,跳转执行下一步;
4.6)判断抢占队列是否为空,如果为空则跳转执行步骤4.3);否则,将待调度任务重新加入任务队列中,跳转执行步骤2)。
为了实现对任务的抢占实现可选配置以实现灵活的调度方案,本实施例中步骤4.1)之前还包括判断待调度任务是否有资格进行抢占调度的步骤,且仅当待调度任务有资格进行抢占调度时才跳转执行步骤4.1),否则将待调度任务重新加入任务队列并跳转执行步骤2)。
本实施例步骤2)中从任务队列中取出一个任务具体是指从任务队列中取出一个优先级最高的任务作为待调度任务,并将其从任务队列中删除。此外,步骤2)中从任务队列中取出一个任务时也可以根据需要采用其他调度方式,例如轮询、先入先出、后入先出等。
综上所述,本实施例面向容器云的任务抢占调度方法具有下述优点:(1)弥补了容器云环境下无法进行任务抢占调度的缺陷,保证了容器云环境在任务有优先级高低的场景下,高优先级任务在满负荷集群中仍然能够得到及时执行。(2)实现了满负荷集群下的资源释放。在高优先级任务被调度时,由于集群已无法满足该任务的运行,任务抢占调度系统会评估系统中低优先级的任务并进行分析后销毁,从而自动的释放了低优先级的任务资源。(3)加速了任务调度运行的速度。当集群资源满负荷时,一些高优先级的任务仍然能够被执行,排在任务调度队列中的任务数将明显下降,从而任务在调度失败后反复的重新加入任务队列的任务数将减少,这将有效的提高任务调度运行的速度。
此外,本实施例还提供一种面向容器云的任务抢占调度系统,包括:
任务缓存程序单元,用于通过任务队列存储用户提交的任务;
任务选择程序单元,用于从任务队列中取出一个任务作为待调度任务;
资源判断程序单元,用于判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行任务选择程序单元以选择新的待调度任务;否则跳转执行任务抢占程序单元;
任务抢占程序单元,用于通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行任务选择程序单元。
此外,本实施例还提供一种面向容器云的任务抢占调度系统,包括计算机设备,该计算机设备被编程或配置以执行前述面向容器云的任务抢占调度方法的步骤。
此外,本实施例还提供一种面向容器云的任务抢占调度系统,包括计算机设备,该计算机设备的存储器中存储有被编程或配置以执行前述面向容器云的任务抢占调度方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述面向容器云的任务抢占调度方法的计算机程序。
如图4所示,本实施例还提供一种面向容器云的任务抢占调度系统,包括:
资源管理程序模块,用于采集容器云平台中的资源;
队列管理程序模块,用于管理任务队列,所述任务队列用于存储用户提交的任务;
调度分析程序模块,用于从任务队列中取出一个任务作为待调度任务,判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则调用任务调度模块;否则通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时调用任务调度模块;
任务调度程序模块,用于将待调度任务调度到资源节点上;
容器云资源池,包含多个资源节点,用于执行任务。
该任务抢占调度系统主要包括资源管理程序模块、队列管理程序模块、调度分析程序模块和任务调度程序模块共4个程序模块,且作为一种可选的实施方式,任务抢占调度方法主要集中在调度分析程序模块中。任务抢占调度系统的工作流程为,资源管理程序模块定时采集容器云资源池内所有计算节点的总资源信息和可用资源信息,队列管理程序模块中的任务队列将存储待调度任务信息,调度分析程序模块在任务队列中选取优先级最高的一个任务,通过分析资源管理程序模块中的可用资源信息,若可用资源满足任务请求的资源,则启动任务调度程序模块将该任务调度到容器云资源池的计算节点上,若可用资源不满足请求任务的资源,则调度分析程序模块启动任务抢占调度方法并分析资源池中比该任务优先级低的任务,最终确认一个或几个低优先级的任务进行销毁并释放资源,最后任务调度程序模块,将该任务调度到对应的计算节点上。当用户发布一个任务时,该任务会存储到队列管理程序模块中的任务队列中,调度分析程序模块首先从任务队列中获取一个优先级最高的任务信息,再通过资源管理程序模块计算容器云平台中的资源是否能够满足该优先级任务的执行,如果满足,则直接进行任务调度,如果不满足,则任务抢占调度系统会启动任务抢占调度方法,该调度方法将采集容器云中所有的计算节点资源信息和任务运行信息,抢占调度方法首先确认在资源池中是否有比该任务优先级更低优先级的任务,如果有,再选择一组节点在预销毁低优先级任务后,查看是否满足该任务的运行,如果满足,则在这组低优先级的节点中,通过随机算法,选择一个节点,进行实际的低优先级任务销毁,并将该任务调度到对应节点上,从而满足高优先级的任务能够顺利的及时执行。
资源管理程序模块的主要功能是采集容器云资源池中所有计算节点的资源总量和可用量信息,并定时的将采集到的资源信息推送到调度分析程序模块供任务调度分析使用。
队列管理程序模块管理着三种队列:任务队列、预抢占队列和抢占队列。其中任务队列按优先级的高低顺序存储着容器云集群中所有待调度的任务信息,预抢占队列为通过一系列筛选后满足当前任务可抢占的计算节点信息(含有低优先级任务),抢占队列为通过预抢占队列按照一定的规则做进一步筛选后,最终得到的当前任务将要抢占的节点信息,如果当前的抢占队列中的节点数只有一个,则销毁该节点上低优先级的任务并调度当前的任务到该节点上,如果抢占队列中的节点数多于一个,则通过随机算法选择该队列中的一个节点,并进行抢占。
调度分析程序模块的任务是确定一个可调度当前任务的节点,该模块的具体实现如下:
从队列管理程序模块的任务队列中获取当前优先级最高的任务信息,从资源管理程序模块获取当前容器云集群中的整体资源信息和可用资源信息,并分析比较当前资源池中可用的资源是否能够满足当前任务的调度,如果满足,则启动任务调度程序模块进行当前的任务调度。如果不满足,则启动任务抢占调度方法。
任务抢占调度方法首先判断当前的任务是否满足抢占的调度资格。如果当前的资源池中所有的任务优先级高于或等于当前任务的优先级,则当前的任务无资格进行抢占调度,调度分析程序模块将该任务存储到任务管理模块中的任务队列中,并结束当前任务的抢占调度方法。如果当前的资源池中有任务优先级低于当前任务的优先级,则当前任务将能够进行抢占调度。
对于有抢占调度资格的任务,调度分析程序模块首先遍历容器云资源池中的计算节点上比当前任务优先级低的任务,并将对应的节点信息存储到队列管理程序模块中的预抢占队列中。然后通过如下的算法规则,最终将可被抢占的节点信息存储到队列管理程序模块中的抢占队列中。将所有的优先级比当前任务低的任务按优先级高低进行排序;排序结束后,将任务同预抢占队列中的节点适配,如果不通过,则说明即使把预抢占队列中某个节点中的所有比当前优先级低的任务销毁后,依然不满足当前任务的资源需求,那么说明当前的节点不适合当前的任务调度,此时返回,否则将当前的节点加入队列管理程序模块中的抢占队列中。
最终抢占队列中将存储所有满足任务抢占的节点信息,此时需在该节点组中根据如下规则选择一个节点作为任务抢占调度节点。选择抢占队列中任务优先级最低的节点;如果单个优先级低的任务销毁后无法满足待调度任务资源需求,但对应节点上多个优先级低的任务销毁后能够满足需求,则选择队列中待销毁任务优先级平均值最低的节点;选择待销毁低优先级任务对应容器数最少的节点;综合以上的筛选后,如果此时还有不止一个节点满足待调度任务的资源需求,则使用随机算法,最终确定其中一个节点作为任务抢占调度节点。
确定最终的任务抢占调度节点后,调度分析程序模块将实际销毁该节点上需要销毁的低优先级任务,并释放出满足当前任务需求的计算资源。
任务调度程序模块用于接收调度分析程序模块中最终确定的待调度任务的抢占节点信息,并将当前待调度任务调度到该抢占节点上。
容器云资源包含当前容器云平台中的所有计算资源节点,当任务调度程序模块调度任务后,容器任务最终将运行在资源池中的计算节点上。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种面向容器云的任务抢占调度方法,其特征在于实施步骤包括:
1)通过任务队列存储用户提交的任务;
2)从任务队列中取出一个任务作为待调度任务;
3)判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则跳转执行下一步;
4)通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行步骤2)。
2.根据权利要求1所述的面向容器云的任务抢占调度方法,其特征在于,步骤4)的详细步骤包括:
4.1)采集容器云平台中所有的资源节点的资源和任务运行信息,判断所有资源节点的运行任务中是否有比待调度任务优先级更低的低优先级任务,如果没有则将待调度任务重新加入任务队列中,跳转执行步骤2);否则跳转执行下一步;
4.2)将有比待调度任务优先级更低的低优先级任务的资源节点加入预抢占队列,针对预抢占队列中的各个资源节点,根据各个资源节点的资源和任务运行信息,判断该资源节点销毁其低优先级任务后的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将该资源节点加入抢占队列,如果最终的抢占队列非空则跳转执行步骤4.3);否则将待调度任务重新加入任务队列中,跳转执行步骤2);
4.3)从抢占队列中随机取出的一个资源节点作为当前资源节点;
4.4)在当前资源节点中选择一个比待调度任务优先级更低的低优先级任务,并销毁该低优先级任务;然后销毁该低优先级任务后当前资源节点的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则,跳转执行下一步;
4.5)判断当前资源节点是否仍有可用的低优先级任务,如果仍有可用的低优先级任务则跳转执行步骤4.4);否则,跳转执行下一步;
4.6)判断抢占队列是否为空,如果为空则跳转执行步骤4.3);否则,将待调度任务重新加入任务队列中,跳转执行步骤2)。
3.根据权利要求2所述的面向容器云的任务抢占调度方法,其特征在于,步骤4.1)之前还包括判断待调度任务是否有资格进行抢占调度的步骤,且仅当待调度任务有资格进行抢占调度时才跳转执行步骤4.1),否则将待调度任务重新加入任务队列并跳转执行步骤2)。
4.根据权利要求1所述的面向容器云的任务抢占调度方法,其特征在于,步骤2)中从任务队列中取出一个任务具体是指从任务队列中取出一个优先级最高的任务作为待调度任务,并将其从任务队列中删除。
5.一种面向容器云的任务抢占调度系统,其特征在于包括:
任务缓存程序单元,用于通过任务队列存储用户提交的任务;
任务选择程序单元,用于从任务队列中取出一个任务作为待调度任务;
资源判断程序单元,用于判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行任务选择程序单元以选择新的待调度任务;否则跳转执行任务抢占程序单元;
任务抢占程序单元,用于通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行任务选择程序单元。
6.一种面向容器云的任务抢占调度系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~4中任意一项所述面向容器云的任务抢占调度方法的步骤。
7.一种面向容器云的任务抢占调度系统,包括计算机设备,其特征在于,该计算机设备的存储器中存储有被编程或配置以执行权利要求1~4中任意一项所述面向容器云的任务抢占调度方法的计算机程序。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~4中任意一项所述面向容器云的任务抢占调度方法的计算机程序。
9.一种面向容器云的任务抢占调度系统,其特征在于包括:
资源管理程序模块,用于采集容器云平台中的资源;
队列管理程序模块,用于管理任务队列,所述任务队列用于存储用户提交的任务;
调度分析程序模块,用于从任务队列中取出一个任务作为待调度任务,判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则调用任务调度模块;否则通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中资源能够满足待调度任务的执行时调用任务调度模块;
任务调度程序模块,用于将待调度任务调度到资源节点上;
容器云资源池,包含多个资源节点,用于执行任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279644.4A CN111399989B (zh) | 2020-04-10 | 2020-04-10 | 一种面向容器云的任务抢占调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279644.4A CN111399989B (zh) | 2020-04-10 | 2020-04-10 | 一种面向容器云的任务抢占调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399989A true CN111399989A (zh) | 2020-07-10 |
CN111399989B CN111399989B (zh) | 2022-11-18 |
Family
ID=71433192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010279644.4A Active CN111399989B (zh) | 2020-04-10 | 2020-04-10 | 一种面向容器云的任务抢占调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399989B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181661A (zh) * | 2020-10-13 | 2021-01-05 | 极道科技(北京)有限公司 | 一种任务调度方法 |
CN112214319A (zh) * | 2020-09-29 | 2021-01-12 | 深圳大学 | 一种计算资源感知的任务调度方法 |
CN112269641A (zh) * | 2020-11-18 | 2021-01-26 | 网易(杭州)网络有限公司 | 一种调度方法、装置、电子设备及存储介质 |
CN112346836A (zh) * | 2020-10-28 | 2021-02-09 | 海光信息技术股份有限公司 | 共享计算资源的抢占方法、装置、用户设备及存储介质 |
CN112350952A (zh) * | 2020-10-28 | 2021-02-09 | 武汉绿色网络信息服务有限责任公司 | 控制器分配方法、网络业务系统 |
CN112650687A (zh) * | 2020-12-30 | 2021-04-13 | 绿盟科技集团股份有限公司 | 引擎调度动作执行优先级的测试方法、装置、设备及介质 |
CN112948109A (zh) * | 2021-02-20 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种ai计算集群的配额弹性调度方法、装置及介质 |
CN113032102A (zh) * | 2021-04-07 | 2021-06-25 | 广州虎牙科技有限公司 | 资源重调度方法、装置、设备和介质 |
CN114268549A (zh) * | 2021-12-10 | 2022-04-01 | 郑州云海信息技术有限公司 | 一种云平台抢占资源的方法、系统、设备和存储介质 |
CN114971594A (zh) * | 2022-07-28 | 2022-08-30 | 北京有生深境技术有限公司 | 一种基于抢占式办公模式的工作流引擎 |
CN116643860A (zh) * | 2023-04-26 | 2023-08-25 | 国家气象信息中心(中国气象局气象数据中心) | 针对气象机器学习算法运行的优先级调度方法、系统、电子设备和计算机程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915254A (zh) * | 2011-08-02 | 2013-02-06 | 中兴通讯股份有限公司 | 任务管理方法及装置 |
US20150154056A1 (en) * | 2013-12-03 | 2015-06-04 | International Business Machines Corporation | Migrating a running, preempted workload in a grid computing system |
CN108304260A (zh) * | 2017-12-15 | 2018-07-20 | 上海超算科技有限公司 | 一种基于高性能云计算的虚拟化作业调度系统及其实现方法 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110825520A (zh) * | 2019-10-18 | 2020-02-21 | 山东省计算中心(国家超级计算济南中心) | 一种实现资源高效利用的集群极速弹性伸缩方法 |
-
2020
- 2020-04-10 CN CN202010279644.4A patent/CN111399989B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915254A (zh) * | 2011-08-02 | 2013-02-06 | 中兴通讯股份有限公司 | 任务管理方法及装置 |
US20150154056A1 (en) * | 2013-12-03 | 2015-06-04 | International Business Machines Corporation | Migrating a running, preempted workload in a grid computing system |
CN108304260A (zh) * | 2017-12-15 | 2018-07-20 | 上海超算科技有限公司 | 一种基于高性能云计算的虚拟化作业调度系统及其实现方法 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110825520A (zh) * | 2019-10-18 | 2020-02-21 | 山东省计算中心(国家超级计算济南中心) | 一种实现资源高效利用的集群极速弹性伸缩方法 |
Non-Patent Citations (1)
Title |
---|
刘汪根 郑淮城 荣国平: "云环境下大规模分布式计算数据感知的调度系统", 《大数据》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214319A (zh) * | 2020-09-29 | 2021-01-12 | 深圳大学 | 一种计算资源感知的任务调度方法 |
CN112214319B (zh) * | 2020-09-29 | 2021-08-06 | 深圳大学 | 一种计算资源感知的任务调度方法 |
CN112181661A (zh) * | 2020-10-13 | 2021-01-05 | 极道科技(北京)有限公司 | 一种任务调度方法 |
CN112181661B (zh) * | 2020-10-13 | 2023-10-24 | 极道科技(北京)有限公司 | 一种任务调度方法 |
CN112350952A (zh) * | 2020-10-28 | 2021-02-09 | 武汉绿色网络信息服务有限责任公司 | 控制器分配方法、网络业务系统 |
CN112346836A (zh) * | 2020-10-28 | 2021-02-09 | 海光信息技术股份有限公司 | 共享计算资源的抢占方法、装置、用户设备及存储介质 |
CN112346836B (zh) * | 2020-10-28 | 2023-11-21 | 海光信息技术股份有限公司 | 共享计算资源的抢占方法、装置、用户设备及存储介质 |
CN112269641A (zh) * | 2020-11-18 | 2021-01-26 | 网易(杭州)网络有限公司 | 一种调度方法、装置、电子设备及存储介质 |
CN112269641B (zh) * | 2020-11-18 | 2023-09-15 | 网易(杭州)网络有限公司 | 一种调度方法、装置、电子设备及存储介质 |
CN112650687A (zh) * | 2020-12-30 | 2021-04-13 | 绿盟科技集团股份有限公司 | 引擎调度动作执行优先级的测试方法、装置、设备及介质 |
CN112650687B (zh) * | 2020-12-30 | 2024-03-19 | 绿盟科技集团股份有限公司 | 引擎调度动作执行优先级的测试方法、装置、设备及介质 |
CN112948109B (zh) * | 2021-02-20 | 2023-03-21 | 山东英信计算机技术有限公司 | 一种ai计算集群的配额弹性调度方法、装置及介质 |
CN112948109A (zh) * | 2021-02-20 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种ai计算集群的配额弹性调度方法、装置及介质 |
CN113032102A (zh) * | 2021-04-07 | 2021-06-25 | 广州虎牙科技有限公司 | 资源重调度方法、装置、设备和介质 |
CN113032102B (zh) * | 2021-04-07 | 2024-04-19 | 广州虎牙科技有限公司 | 资源重调度方法、装置、设备和介质 |
CN114268549A (zh) * | 2021-12-10 | 2022-04-01 | 郑州云海信息技术有限公司 | 一种云平台抢占资源的方法、系统、设备和存储介质 |
CN114971594A (zh) * | 2022-07-28 | 2022-08-30 | 北京有生深境技术有限公司 | 一种基于抢占式办公模式的工作流引擎 |
CN116643860A (zh) * | 2023-04-26 | 2023-08-25 | 国家气象信息中心(中国气象局气象数据中心) | 针对气象机器学习算法运行的优先级调度方法、系统、电子设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111399989B (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399989B (zh) | 一种面向容器云的任务抢占调度方法及系统 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN107992359B (zh) | 一种云环境下代价感知的任务调度方法 | |
TWI742045B (zh) | 任務的資源調度方法及裝置 | |
US7559062B2 (en) | Intelligent scheduler for multi-level exhaustive scheduling | |
JP4694595B2 (ja) | スリープキュー管理 | |
KR101694287B1 (ko) | 스트림 처리 태스크 관리 장치 및 방법 | |
US8615765B2 (en) | Dividing a computer job into micro-jobs | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN101452399B (zh) | 任务二级调度模块及方法 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN109947552A (zh) | 基于进程与线程调度的边缘控制器动态任务调度方法 | |
CN112799837A (zh) | 一种容器动态平衡调度方法 | |
CN115222121A (zh) | 一种面向工业数据的任务调度优化方法 | |
CN113391911B (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN111199316A (zh) | 一种基于执行时间评估的云雾协同计算电网调度方法 | |
CN117724811A (zh) | 一种层次化的多核实时调度器 | |
CN117519930A (zh) | 批量任务的执行方法、装置及电子设备 | |
CN111506407A (zh) | Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质 | |
CN116755888A (zh) | 一种面向高性能计算云平台的作业调度装置及方法 | |
Garg | Real-time linux kernel scheduler | |
CN116089248A (zh) | 一种写i/o突发分布预测方法、装置、设备及存储介质 | |
CN112835692B (zh) | 一种日志消息驱动任务方法、系统、存储介质及设备 | |
EP2413240A1 (en) | Computer micro-jobs |
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 |