[发明专利]一种面向应用集群的队列任务调度方法及系统在审
申请号: | 202210062739.X | 申请日: | 2022-01-19 |
公开(公告)号: | CN114489942A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 徐亦飞;王超勇;朱利;王正洋;秦志强;张扬;张越皖;尉萍萍 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/48;G06F9/54;G06F11/30 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 陈翠兰 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 应用 集群 队列 任务 调度 方法 系统 | ||
本发明公开了一种面向应用集群的队列任务调度方法及系统,将线上和线下任务并存在Kubernetes集群中,基于打分策略对线下任务进行打分,并对线下任务进行优先级排定,保证优先级高的训练任务有着更少的等待时间的同时,考虑多方面因素来调整任务执行队列,对任务的动态变化进行实时监控,调整线上和线下任务的资源分配,保证线上任务的服务质量,同时可以根据不同维度手动暂停线下一个或者一批训练任务,和手动开启暂停的一个和一批训练任务,可应对突发事件或者特殊时期,提高了任务的分配效率,便于资源的管理和控制,解决了现有技术中,资源分配率低,服务质量低的问题。
技术领域
本发明属于集群任务调度技术领域,涉及一种面向应用集群的队列任务调度方法及系统。
背景技术
本发明采用Kubernetes和容器化技术搭建集群,Kubernetes已经成为云原生应用编排、管理的事实标准,越来越多的应用选择向Kubernetes迁移。人工智能和机器学习领域天然的包含大量的计算密集型任务,开发者非常愿意基于Kubernetes构建AI平台,充分利用Kubernetes提供的资源管理、应用编排、运维监控能力。目前Kubernetes在构建AI平台方面的使用也是越来越广泛。但是目前Kubernetes还有以下缺陷:①对于所有的在线任务都会存在繁忙期和平淡期,在初始给任务分配内存时,如果按照峰值分配就会造成很大的资源浪费,如果按照低估分配,则可能造成峰值时服务质量下降和内存溢出的情况,这个会极大影响用户的体验,是任何一个集群不能接受的。
采用在线任务和线下任务共存的机制来最大化资源利用率。但是同样有着以下问题:对于线上任务不按照峰值分配资源,怎么保证处于峰值时的服务质量。②训练任务的优先级问题。目前训练任务的执行只能通过按时间顺序或者优先级更高的更高概率先执行,考虑维度过于单一。③暂停任务问题。目前Kubernetes在新的1.21版本中开始支持job暂停,但是目前也没有发布正式版本,而且只能通过任务名对任务进行暂停和启动。不能通过其他维度和批量实现job的暂停和恢复。
发明内容
本发明的目的在于解决现有技术中的问题,提供一种面向应用集群的队列任务调度方法及系统。
为达到上述目的,本发明采用以下技术方案予以实现:
一种面向应用集群的队列任务调度方法,包括以下步骤:
S1:对创建的线下任务对象进行打分,计算当前任务得分,将计算结果保存至数据库中;
S2:查询Kubernetes集群中的job资源等待队列是否为null,如果是,执行S3;如果不是,执行S4;
S3:提交任务到Kubernetes集群中,并按得到的任务分数插入到运行队列中,任务开始运行,同时实时监控集群中队列任务的动态变化,并基于动态变化进行实时调整;
S4:获取job资源等待队列中任务的最大得分,并与当前的任务分数进行比较,如果大于当前任务得分,执行S5;如果小于当前任务得分,执行S6;
S5:修改当前任务暂停状态为True,并将当前任务插入至暂停队列中;
S6:计算当前运行队列中,分数小于当前任务的所有任务所占资源的总和,判断得出的资源总和是否满足当前任务,如果不满足,执行S5;如果满足,执行S7;
S7:修改当前任务的暂停状态为false,修改运行队列中任务的暂停状态为True;
将运行队列中修改后的任务插入到暂停队列中,将修改后的当前任务插入到Kubernetes集群中的运行队列中。
本发明的进一步改进在于:
所述S1中还包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210062739.X/2.html,转载请声明来源钻瓜专利网。