一种面向容器云的任务抢占调度方法及系统技术方案

技术编号:24852578 阅读:21 留言:0更新日期:2020-07-10 19:06
本发明专利技术公开了一种面向容器云的任务抢占调度方法及系统,本发明专利技术任务抢占调度方法包括通过任务队列存储用户提交的任务;从任务队列中取出待调度任务;判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,否则通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上。本发明专利技术能够在资源满负荷运行的场景下,将低优先级的任务进行销毁,释放计算资源,从而满足高优先级的任务及时执行,同时由于任务的顺利执行使得在任务队列中等待被执行的任务数将极大的减少,有效地提高了任务调度的效率。

【技术实现步骤摘要】
一种面向容器云的任务抢占调度方法及系统
本专利技术涉及容器云平台的资源调度管理技术,具体涉及一种面向容器云的任务抢占调度方法及系统。
技术介绍
近年来,容器技术及相关应用得到了国内外越来越多的关注度,研发和应用推广发展势头迅猛。在国外,容器技术已经形成了较成熟的生态圈;在国内,金融企业、互联网企业、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.一种面向容器云的任务抢占调度方法,其特征在于实施步骤包括:/n1)通过任务队列存储用户提交的任务;/n2)从任务队列中取出一个任务作为待调度任务;/n3)判断容器云平台中的资源是否能够满足待调度任务的执行,如果能够满足待调度任务的执行,则将待调度任务调度到资源节点上,跳转执行步骤2);否则跳转执行下一步;/n4)通过将容器云平台中低优先级的任务销毁释放计算资源,并在容器云平台中的资源能够满足待调度任务的执行时将待调度任务调度到资源节点上,跳转执行步骤2)。/n

【技术特征摘要】
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),否则将待调度任务重新加入...

【专利技术属性】
技术研发人员:李宝谭郁松王晓川张建锋周龙黄辰林丁滟谭霜
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1