CN115599557A - 一种考虑任务重要程度动态变化的调度器系统 - Google Patents
一种考虑任务重要程度动态变化的调度器系统 Download PDFInfo
- Publication number
- CN115599557A CN115599557A CN202211590696.9A CN202211590696A CN115599557A CN 115599557 A CN115599557 A CN 115599557A CN 202211590696 A CN202211590696 A CN 202211590696A CN 115599557 A CN115599557 A CN 115599557A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- workflow
- component
- queue
- 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/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/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
- 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/508—Monitor
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
本发明提供一种考虑任务重要程度动态变化的调度器系统,包括9个组件,其中任务接收组件接收来自外界的任务,并对任务类型进行判断;工作流预处理组件对工作流进行预处理;任务队列更新组件和等待队列更新组件分别定期对任务队列和等待队列中的任务进行效用值更新和顺序更新;任务完成情况监控组件、任务处理时长监控组件和资源信息监控组件分别对任务完成情况、任务处理时长、资源信息进行实时监控;任务分配组件对任务队列和等待队列中的任务进行调度,包括任务分配、资源预留和抢占式调度三种机制;权重在线更新组件对效用函数的权重进行学习与更新。本发明可用于微服务架构工业软件任务调度,提高任务分配合理性和效率。
Description
技术领域
本发明属于任务调度领域,尤其涉及一种考虑任务重要程度动态变化的调度器系统。
背景技术
在基于微服务架构的工业软件中,每个业务由一个或多个任务组成,并由服务实例并行处理。工业软件中存在大量要执行的任务,为了合理地分配这些任务,需要设计适应于工业场景特点的任务调度方法。在工业场景中,任务通常由如下特点:1)实时性要求高,需要实时安排任务,以减少任务延迟;2)独立的任务和工作流同时存在;3)重要程度是任务的属性之一,它与任务的截止时间相关联,且其值是随时间变化的;4)每个服务实例应并行处理多个任务。因此,在设计任务调度方法时,需要同时考虑上述四个特点。
目前,在任务调度领域,还鲜有同时考虑上述四个特征的方法,一般都会忽略其中一些特点。例如,Zhang等在《Dynamic VM Scaling: Provisioning and Pricing throughan Online Auction》中只考虑了独立任务,而没有考虑工作流的情况,不满足上述特点2);Cui等在《A Reinforcement Learning-Based Mixed Job Scheduler Scheme for Grid orIaaS Cloud》中的每个服务实例仅能处理一个任务,而不能处理多个任务,不满足上述特点4)。显然,现有的任务调度方法不能满足工业调度需求。
发明内容
为了解决现有技术中存在的问题,本发明提供了一种考虑任务重要程度动态变化的调度器系统,系统中的各组件协调配合、各司其职、并发工作,能够提高非重要任务的按时完成率,以及所有任务的总体响应速度,提高任务分配的合理性和效率。
为了实现本发明目的,本发明提供的一种考虑任务重要程度动态变化的调度器系统,所述调度器系统包括9个组件,分别为:
任务接收组件,用于接收来自外界的任务,并对任务类型进行判断,如果任务是独立任务,则对该独立任务进行效用值计算,然后把该独立任务存储到任务队列中;如果任务是工作流,则把该工作流发送到工作流预处理组件;其中,效用值反映了任务的重要程度;
工作流预处理组件,用于先对工作流进行预处理,得到工作流任务,然后对这些工作流任务进行效用值计算,并把所述工作流任务存储到任务队列中;
任务队列更新组件,用于对任务队列中的任务定期进行效用值更新和排序;
等待队列更新组件,用于定期对等待队列中暂时没有足够资源去处理的任务进行紧急任务检查以及效用值更新和排序;
任务完成情况监控组件,用于监控服务实例中的任务是否完成,如有任务完成则将任务完成信息通知给任务分配组件以及工作流预处理组件,其中,每个服务实例需要并行处理多个任务;
任务处理时长监控组件,用于监控服务实例中任务处理的时长,并实时通知任务分配组件;
资源信息监控组件,用于监控服务实例及物理机的资源使用情况,并实时通知任务分配组件;
任务分配组件,用于对任务队列和等待队列中的任务进行调度,并把任务发送到部署在物理机上的服务实例处理;
权重在线更新组件,用于依据任务队列、等待队列、服务实例中的任务截止情况,对效用函数的权重进行定期在线学习与更新。
进一步地,任务接收组件中所述独立任务为只需要调用一个服务即可完成处理的任务,所述独立任务的属性包括到达时间、截止时间和固有重要程度;所述工作流为需要先后调用多个服务才能完成处理的任务,所述工作流的属性包括到达时间、截止时间、固有重要程度和拓扑结构四个属性;所述任务队列为用于存储待分配任务的队列。
进一步地,任务接收组件中,所述效用值计算是指依据效用函数对任务的重要程度进行计算。
进一步地,所述效用函数考虑固有重要程度、松弛度和是否处于关键路径三个因素,并通过权重w 1、w 2、w 3来体现上述三个因素对任务重要程度的影响,所述效用函数为:
进一步地,所述固有重要程度是任务的一种固定属性,任务越重要,说明越需要被尽快完成;所述松弛度是指任务在满足截止时间的条件下可以延迟处理的最大时间;所述是否处于关键路径是指工作流任务是否处于该工作流的关键路径上,体现为该工作流任务可能成为影响整个工作流完成时间的瓶颈。
进一步地,工作流预处理组件中,所述预处理包括两个过程,第一个过程是接收到新工作流的预处理过程,第二个过程是接收到工作流任务完成信息的预处理过程。
进一步地,所述接收到新工作流的预处理过程为,如果接收到新的工作流,则计算该工作流中所有工作流任务的截止时间以及该工作流中所有根节点任务的效用值,然后将所有根节点任务存入任务队列;
进一步地,所述接收到工作流任务完成信息的预处理过程为,如果接收到任务完成情况监控组件发送的工作流任务的完成信息,则查询该工作流任务所有后继任务是否处于就绪状态,其中就绪状态是指该工作流任务的所有前驱任务是否都已完成,如果是则计算该工作流任务的效用值并存入任务队列。
进一步地,等待队列更新组件中,所述等待队列是指用于存储当前所有服务实例都没有足够资源去处理的任务的队列;所述紧急任务检查是指依次检查等待队列中是否有紧急任务,其中紧急任务是指固有重要程度为5或即将错过截止时间的任务;所述资源包括CPU、内存、磁盘I/O、网络带宽四类资源。
进一步地,任务分配组件采用任务分配机制、资源预留机制和抢占式调度机制中的任一种或多种机制来对任务进行调度。
进一步地,所述任务分配机制用于对任务队列中的任务进行分配,并规定了四个原则,第一个原则是普通任务只能分配给非备用实例,而紧急任务可以分配给非备用实例和备用实例;第二个原则是非备用实例需要进行负载均衡,而备用实例不需要进行负载均衡,其中负载均衡是指不同服务实例的各种资源使用相对平衡,防止由于某些服务实例负载过高而导致任务总体吞吐量下降的情况;第三个原则是在分配任务时,需要满足资源约束;第四个原则是在把任务分配给非备用实例处理时,需要将任务分配给当前主导资源剩余最多的服务实例处理,通过计算任务所需CPU、内存、磁盘I/O、网络带宽与服务实例中对应资源占比,主导资源是指其中占比最高的资源。
进一步地,所述资源约束包括服务实例资源约束和物理机资源约束;所述服务实例资源约束是指当服务实例的剩余资源能满足该任务的资源需求;所述物理机资源约束是指当物理机的剩余资源能满足该任务的资源需求。
进一步地,所述资源预留机制需要满足的具体实施过程为:如果当前效用值最高的任务没有足够的资源被处理,则把该任务优先预留给某一非备用实例,被预留的实例的资源被锁定,不能用于处理除预留任务以外的其他任务,直到该预留任务被分配出去。
进一步地,所述抢占式调度机制的具体实施过程为,当所有服务实例的资源都不能满足紧急任务的处理需求时,调度器将进行抢占式调度——终止某个非备用实例对一些普通任务的处理过程,抢占这些普通任务所占用的资源,使该紧急任务能被分配给该非备用实例处理。
进一步地,所述权重在线更新组件的更新目标为效用函数的权重,输入为任务队列、等待队列、服务实例中的任务信息,其输出为效用函数的权重,在进行权重在线学习后,权重在线更新组件将把学习后的权重更新到权重库中。
进一步地,权重在线更新组件中,所述在线学习与更新方法包括三步,第一步,权重在线更新组件读取任务队列、等待队列、服务实例中的任务信息,并依据判断规则判断该组权重的调度效果,如果调度效果好,则保持使用该组权重,如果调度效果不好,则选择其他权重;第二步,权重在线更新组件选择其他权重,并在线更新到权重库中,调度器系统将使用更新后的权重进行调度;第三步,权重在线更新组件等待一段时间后,由第一步开始继续循环更新权重。
进一步地,所述判断规则为依据任务截止的数量来判断调度效果,如果任务截止的数量超过所设定的阈值,则调度效果较差,否则调度效果较好。
与现有技术相比,本发明至少能够实现以下有益效果:
本发明提供的一种考虑任务重要程度动态变化的调度器系统,该系统包括九个组件,其中任务接收组件与工作流预处理组件实现对任务的预处理;任务队列更新组件和等待队列更新组件分别实现对任务队列和等待队列中任务的效用值和顺序进行实时更新;任务完成情况监控组件、任务处理时长监控组件和资源信息监控组件实现对信息的监控;任务分配组件实现对任务的调度与分配;权重在线更新组件实现对权重的更新,提高调度的效果。九个组件协调配合、各司其职、并发工作,为基于微服务架构的工业软件任务调度提供基础,在使重要任务能被尽快处理的同时,还能提高非重要任务的按时完成率,以及所有任务的总体响应速度,提高任务分配的合理性和效率。
附图说明
图1是本发明实施例提供的考虑任务重要程度动态变化的调度器系统的结构示意图。
图2是本发明实施例中工作流wf i 示例的示意图。
图3是本发明实施例提供的电力系统调控软件案例中的任务情况示意图。
图4是本发明提供的案例一中的非备用实例MSB,1的资源使用时序图。
图5是本发明提供的案例一中非备用实例MSB,2的资源使用时序图。
图6是本发明提供的案例一中备用实例MSB,3的资源使用时序图。
图7是本发明提供的案例一服务B的非备用实例的预留任务时序图。
图8是本发明提供的案例二中的非备用实例MSB,1的资源使用时序图。
图9是本发明提供的案例二中的非备用实例MSB,2的资源使用时序图。
图10是本发明提供的案例二中的备用实例MSB,3的资源使用时序图。
图11是本发明提供的案例二中的服务B的非备用实例的预留任务时序图。
图12是本发明提供的案例三中的非备用实例MSB,1的资源使用时序图。
图13是本发明提供的案例三中的非备用实例MSB,2的资源使用时序图。
图14是本发明提供的案例三中的备用实例MSB,3的资源使用时序图。
图15是本发明提供的案例三中的服务B的非备用实例的预留任务时序图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都是本发明保护的范围。
请参阅图1,本发明提供的一种考虑任务重要程度动态变化的调度器系统,该系统具体包括九个组件:
M1:任务接收组件。该组件用于接收来自外界的任务,并对任务类型进行判断。如果任务是独立任务,则对该独立任务进行效用值计算,然后把该独立任务存储到任务队列中;如果任务是工作流,则把该工作流发送到工作流预处理组件。
M2:工作流预处理组件。该组件用于先对工作流进行预处理,得到工作流任务,然后对这些工作流任务进行效用值计算,并把所述工作流任务存储到任务队列中。
M3:任务队列更新组件。该组件用于对任务队列中的任务定期进行效用值更新和排序。
M4:等待队列更新组件。该组件用于定期对等待队列中暂时没有足够资源去处理的任务进行紧急任务检查以及效用值更新和排序。
M5:任务完成情况监控组件。该组件用于负责监控服务实例中的任务是否完成,如有任务完成则将该信息通知给任务分配组件以及工作流预处理组件。
M6:任务处理时长监控组件。该组件用于负责监控服务实例中任务处理的时长,并实时通知任务分配组件。
M7:资源信息监控组件。该组件用于负责监控服务实例及物理机的资源使用情况,并实时通知任务分配组件。
M8:任务分配组件。该组件用于对任务队列和等待队列中的任务进行调度,具体包括三种机制,分别是任务分配机制、资源预留机制和抢占式调度机制。
M9:权重在线更新组件。该组件用于依据任务队列、等待队列、服务实例中的任务情况,对效用函数的权重进行定期在线学习与更新。
上述调度器系统的设计充分考虑了包含独立任务和工作流的任务模型,以及考虑了CPU、内存、磁盘I/O、网络带宽四类资源的资源模型。
任务模型是指对任务的属性及特点进行建模。任务模型中主要包括独立任务和工作流。独立任务是指只需要调用一个服务即可完成处理的任务。一个独立任务t i 可以建模为t i = {a i , d i , I i},这些参数含义如下:
(1)到达时间a i :任务接收组件接收到独立任务t i 的时间。
(2)截止时间d i :需要在截止时间d i 之前完成对独立任务t i 的处理,否则独立任务t i 将超时。
(3)固有重要程度I i :任务越重要,说明越需要被尽快完成。
工作流是指需要先后调用多个服务才能完成处理的任务,其通常由多个工作流任务组成。一个工作流wf i 可建模为wf i = (a i , d i , I i , G i ),其中a i 、d i 、I i 的含义与独立任务中对应符号的含义相同,G i 是指wf i 的拓扑结构,通常表示为有向无环图G i = (V i , E i ),其中V i 和E i 的含义如下:
(1)V i :有向无环图G i 中所有节点的集合,每个节点表示工作流wf i 中的一个任务,称为工作流任务。
(2)E i :有向无环图G i 中所有有向边的集合。假设存在一条从v ij 指向v ik 的有向边,则只有在v ij 处理完成后,v ik 才能开始处理,此时称v ij 为v ik 的前驱节点,v ik 为v ij 的后继节点。例如,在本发明的其中一些实施例中,请参阅图2,v i1与v i2之间存在一条有
向边,v i1是v i2的前驱节点,v i2是v i1的后继节点。由于v ij 可能存在多个前驱节点和
后继节点,将v ij 的所有前驱节点组成的集合和后继节点组成的集合分别表示为pred(v ij )
和succ(v ij )。此外,将没有前驱节点的节点称为根节点,将没有后继节点的节点称为叶节
点。
与独立任务不同,工作流的完成时间受其内部任务影响,只有当工作流中所有工作流任务都完成时,该工作流才算完成。每个工作流任务的截止时间不同,在本发明的其中一些实施例中,某个工作流任务的截止时间是其所有后继节点截止时间与处理时间之差的最小值。
除此之外,工作流还具有是否处于关键路径的属性。将从根节点到叶节点的所有节点构成的通路称为路径,路径上所有未完成的工作流任务的预估处理时长之和称为路径长度。对于任意一个工作流,可能存在多条路径,将具有最大长度的路径称为关键路径。关键路径是工作流的一个重要属性,体现了某个工作流任务是否将成为影响整个工作流完成的瓶颈。另外,关键路径可能会随着工作流任务的完成而变化,因此关键路径是时变的。
无论是独立任务或是工作流任务,都有重要程度之分,重要的任务一般需要被优先处理,防止因重要任务延迟处理而造成经济损失甚至人身安全事故。因此本发明提出一个考虑多种因素的加权效用函数,用于对任务的重要程度进行评估。效用函数由三项组成,分别是固有重要程度、松弛度和是否处于关键路径。其中固有重要程度是任务的一种固定属性,反映任务的重要程度,即上文定义的I i ;松弛度是指任务在满足截止时间的条件下可以延迟处理的最大时间;是否处于关键路径是指工作流任务是否在该工作流的关键路径上,体现为该工作流任务可能成为影响整个工作流完成的瓶颈,如果是则认为该工作流任务处于关键路径,否则认为该工作流任务不处于关键路径。上述三个因素可分别表示成函数f 1(x i )、f 2(x i )和f 3(x i ),计算公式如(1)-(5)所示。
其中,w 1、w 2、w 3分别是考虑固有重要程度、松弛度和是否处于关键路径三个因素对应的权重,表示在效用函数中这三个因素所占的比例,通过权重w 1、w 2、w 3来体现上述三个因素对任务重要程度的影响;I(x i )是任务x i 的固有重要程度,其取值为1-5的整数;laxity(x i )为任务x i 的松弛度,松弛度的计算公式如公式(6)所示,其中,deadline(x i )是任务x i 的截止时间,duration(x i )是任务x i 的处理时间,time now 是当前时间;oncriticalPath(x i )表示任务x i 是否在关键路径上,如任务x i 在关键路径上,则oncriticalPath(x i )为1,否则为0。
需要注意的是,上述权重w 1、w 2、w 3均存储在图1的权重中,供任务队列更新组件和等待队列更新组件使用。依据上述公式(1),可以计算出某一任务x i 的效用值,其中任务x i 可以是独立任务,也可以是工作流任务。
资源模型是指对处理任务的服务实例进行建模。任务在处理过程中需要占用服务实例的部分计算资源,其中服务实例是处理任务的媒介,部署在物理机上。一般来说,不同类型任务的资源使用量不同,在本发明的其中一些实施例中,考虑常见的CPU、内存、磁盘I/O、网络带宽四类资源情况。由于服务实例和物理机的资源通常是有限的,因此只有当服务实例和物理机的剩余资源都能满足该任务的资源需求时,该任务才能被处理,否则该任务会暂时因为资源不足而不能被处理,这两种约束分别被称为服务实例资源约束和物理机资源约束。由于紧急任务需要被快速处理,因此本发明把服务实例分成非备用实例和备用实例,并规定备用实例只用于处理紧急任务。考虑到工业软件中通常有较多任务,而处理任务的服务实例数量有限,为了提高资源利用率以及提高任务按时完成比例,每个服务实例需要并行处理多个任务。另外,本发明把SP(x i )定义为能处理任务x i 的服务实例。
基于上述任务模型和资源模型,可设计出图1的调度器系统,接下来对9个组件进行详细介绍。
任务接收组件M1
该组件负责接收来自外界的任务,并对任务类型进行判断。任务接收组件M1接收到任务后,会对任务类型进行判断。如果任务是独立任务,则对该独立任务依据前述公式(1)进行效用值计算,然后把该独立任务存储到任务队列中,其中任务队列是用来存储待分配的任务的队列;如果任务是工作流,则把该工作流发送到工作流预处理组件M2。
工作流预处理组件M2
该组件的功能是对工作流进行预处理,得到工作流任务,然后对这些工作流任务进行效用值计算,并把其存储到任务队列中。在本发明的其中一些实施例中,预处理的过程包括两个过程,分别由两类事件触发,一类是接收到新的工作流,另一类是接收到来自任务完成情况监控组件M5的工作流任务完成信息。
在第一类事件中,当工作流预处理组件M2接收到新的工作流wf i 时,首先计算工作流wf i 中每个任务x i 的截止时间,然后根据公式(1)计算工作流wf i 中所有根节点任务的效用值,并将这些任务存入任务队列。在第二类事件中,当工作流预处理组件M2接收到工作流任务x i 的完成信息时,查询对应工作流中后继节点组成的集合succ(x i )是否有任务处于就绪状态,该就绪状态是指该任务的所有前驱任务是否都已完成,如果有任务处于就绪状态,则根据公式(1)计算该任务的效用值并将该任务存入任务队列。
任务队列更新组件M3
该组件的功能是对任务队列中的任务定期进行效用值更新和排序。其中效用值更新依据公式(1)来重新计算当前时刻的任务效用值。
等待队列更新组件M4
该组件的功能是存储暂时没有足够资源去处理的任务,并定期对等待队列中的任务进行紧急任务检查以及效用值更新和排序。任务队列中的任务可能暂时没有足够的资源去处理,这些任务如果继续放在任务队列中,仍会导致下一次分配失败,因此将它们转移到等待队列中。等待队列用于存储当前所有服务实例都没有足够资源去处理的任务。
紧急任务检查是指依次检查等待队列中是否有紧急任务,其中紧急任务是指固有重要程度为5或即将错过截止时间的任务,除此之外的任务都叫做普通任务。如果有紧急任务,则将这些紧急任务重新存入任务队列,并从等待队列中删除它们。
任务完成情况监控组件M5
该组件的功能是监控服务实例中的任务是否完成。服务实例在任务完成后会将任务完成信息发送给该组件,当该组件收到任务完成的信息后,会通知任务分配组件M8相关的任务完成信息。如果该任务是工作流任务,则该组件还会同时通知工作流预处理组件M2。
任务处理时长监控组件M6
该组件的功能是监控服务实例中任务处理的时长。服务实例处理完任务后,会保留每一个任务的实际处理时长信息,该组件则会实时收集所有服务实例的任务处理时长数据,并计算最近一段时间内各类型任务的平均处理时长,在本发明的其中一些实施例中,其中最近一段时间可根据实际需要来定义,可以是最近一天,也可以是最近一个月等。当计算完成后,该组件会把计算结果发送到任务分配组件M8中。
资源信息监控组件M7
该组件的功能是监控服务实例及物理机的资源使用情况。任务在处理的时候,需要占用计算资源,包括CPU、内存、磁盘I/O、网络带宽四类资源。该组件会收集所有服务实例和物理机的资源使用信息,并实时通知任务分配组件M8。
任务分配组件M8
该组件的功能是对任务队列和等待队列中的任务进行调度与分配,把任务发送到部署在物理机上的服务实例处理。在进行调度与分配的过程中主要包括三种机制,分别是任务分配机制、资源预留机制和抢占式调度机制。
1、任务分配机制
任务分配机制用于对任务队列中的任务进行分配,包括普通任务和紧急任务,其中为了保证能够有足够资源去处理随机到来的紧急任务,本发明规定普通任务只能分配给非备用实例,而紧急任务可以分配给非备用实例和备用实例。另外,本发明规定非备用实例需要满足负载均衡原则,其中,负载均衡原则是指各非备用实例各种资源的使用相对平衡,防止某些服务实例由于负载过高而出现处理能力下降的情况。因此调度器在把任务x i 分配到非备用实例时,会分配给剩余资源最多的非备用实例处理。考虑到有四种资源,调度器需要先计算任务x i 所需各类资源量占服务实例总资源量的比例,其中占比最高的资源称为主导资源,然后将任务x i 分配给主导资源剩余最多的服务实例处理。同时,考虑到有些紧急任务需要使用较多的资源量,调度器不对备用实例做负载均衡,而是使用尽可能少的备用实例去处理紧急任务。
根据上述原则,任务分配机制的分配过程可概括如下:调度器将任务x i 与能处理任务x i 的服务实例SP(x i )中的非备用实例逐一进行资源匹配,判断非备用实例的四类资源是否同时满足任务x i 的需求,若满足任务x i 的需求,则记录下该非备用实例,当所有资源匹配完成后,将任务x i 分配给主导资源剩余最多的非备用实例处理。如果所有资源匹配完成后,仍没有合适的非备用实例能处理该任务,则需要进一步查询任务x i 是否为紧急任务,如果任务x i 是紧急任务,则将它与能处理任务x i 的服务实例SP(x i )中的备用实例进行资源匹配,如果找到同时满足服务实例资源约束和物理机资源约束的备用实例来处理该任务,则把该任务分配给该备用实例处理,否则跳过该任务的分配流程。
2、资源预留机制
在任务的正常分配过程中,可能存在一种导致高效用值任务不能及时被分配处理的情况——如果当前所有非备用实例都不能处理某一效用值最高的任务,而可以处理效用值次高的任务时,此时会把次高的任务分配给服务实例处理,而导致效用值最高的任务要被延时处理。为了避免上述情况的发生,提高对任务分配的合理性,本发明设计了一种资源预留机制,在该机制下,如果当前效用值最高的任务没有足够的资源被处理,此时会把该任务优先预留给某一非备用实例,被预留的实例的资源被锁定,不能用于处理除预留任务以外的其他任务,直到该预留任务被分配出去。
为保证高效用值的任务被优先处理,且不影响紧急任务的处理,任务按效用值递减的顺序被预留给实例,其中规定只有非备用实例能作为预留的实例,且每个实例只能被预留给一个任务。例如,假设等待队列中的任务x 1、x 2、x 3是按效用值递减排序的同一类型的任务,即SP(x 1) = SP(x 2) = SP(x 3),且SP(x 1)中有两个非备用实例s 1和s 2,则只有x 1和x 2可以被预留实例s 1和s 2。
在资源预留过程中,调度器会根据任务所需资源、服务实例正在处理的任务的资源量、开始处理时间和预估处理时长来分配预留实例,通常将预估在最短时间内可以满足任务需求的非备用实例预留给对应任务。例如,在本发明的其中一些实施例中,对于任务x 1的两个非备用实例s 1和s 2,如果预估非备用实例s 1的剩余资源在5s后可以满足任务x 1的需求,预估非备用实例s 2的剩余资源在10s后可以满足x 1的需求,则将非备用实例s 1预留给任务x 1。
3、抢占式调度机制
紧急任务的延时处理可能会影响到电网的正常运行,造成经济损失甚至安全事故,因此紧急任务需要被特别对待。为保证紧急任务能被尽快处理,本发明设计一种抢占式调度机制,当所有服务实例的资源都不能满足紧急任务x i 的处理需求时,调度器将进行抢占式调度——即终止某个非备用实例对一些普通任务的处理过程,抢占这些普通任务所占用的资源,使任务x i 能被分配给该非备用实例处理。
任务在处理过程中需要占用一定资源,且被终止的任务在下一次分配给服务实例时,需要重新开始处理。因此,调度器终止任务会产生一定代价。调度器执行抢占式调度时,需要对终止任务的代价进行评估,优先选择代价低的抢占方式,其中,代价低是指抢占某一任务后,该任务重新进行处理所需要付出的代价。
为满足任务x i 的资源需求,某一服务实例可能需要终止多个任务。为尽可能降低终止任务的代价,在满足任务x i 的资源需求条件下,调度器首先需要找出使该服务实例终止代价总和最小的任务组合。然后,对每个非备用实例的最小代价和进行比较,得到代价和最小的服务实例s min-cost 。最后,终止该实例中的一些任务(最小代价和对应的任务),并将任务x i 分配给服务实例s min-cost 处理。
权重在线更新组件M9
该组件的功能是依据任务队列、等待队列、服务实例中的任务截止情况,进行在线学习,并对效用函数的权重进行定期更新。权重在线更新组件的输入为任务队列、等待队列、服务实例中的任务信息,其输出为权重,在进行权重在线学习后,权重在线更新组件将把学习后的权重更新到权重库中。在本发明的其中一些实施例中,在线学习和更新方法包括三步:第一步,权重在线更新组件读取任务队列、等待队列、服务实例中的任务信息,并依据判断规则判断该组权重的调度效果,如果调度效果好,则保持使用该组权重,如果调度效果不好,则选择其他权重;第二步,权重在线更新组件选择其他权重,并在线更新到权重库中,调度器系统将使用更新后的权重进行调度;第三步,权重在线更新组件等待一段时间后,由第一步开始继续循环更新权重,其中一段时间内可根据实际需要来定义,可以是最近10秒,也可以是最近1分钟等。其中,上述第一步中的判断规则为依据任务截止的数量来判断调度效果,如果任务截止的数量超过所设定的阈值,则调度效果较差,否则调度效果较好。
在上述权重在线更新的设计下,调度算法具备自适应能力,可以根据场景的变化进行自动调整,从而提升调度性能。
在本发明的其中一些实施例中,以电力系统调控软件为例,验证本发明所提供的调度器系统能有效提高调度的合理性和效率。
电力系统调控软件通常需要处理计划检修、事故处理和各种查询操作等多种类型的业务。其中,计划检修业务是指按照事先制定的停电检修计划对电网设备进行检修操作,包括日前审批和日内校核两类子业务。日前审批是在检修单执行当天之前进行的审批操作,审批通过后生成操作票。日内校核是在检修单执行当天进行的校核操作,校核通过后将操作票下发给厂站执行。
在本发明的案例中,在本发明的案例中,所考虑的电力系统调控软件服务有A、B、C、D、E、F、G七种,各服务的含义如表1所示。在该软件中,涉及到的任务有26种,如图3所示,其中每一个任务都可能由一个或多个节点组成。图3中各任务的含义如下:任务(1)为查询计划检修业务的处理情况;任务(2)为查询事故处理业务的处理情况;任务(3)为对线路故障进行诊断和评估;任务(4)为对母线故障进行诊断和评估;任务(5)为对故障跳闸线路进行强送;任务(6)为获取故障诊断所需的实时量测数据;任务(7)为获取故障诊断所需的实时拓扑数据;任务(8)为查询和修改网架数据;任务(9)为定位故障线路的下级厂站;任务(10)为根据不同停电计划的关联程度,对所有停电计划单进行关联分组;任务(11)为对操作票的执行状态进行确认;任务(12)为根据事故处理业务的需求,对线路故障进行诊断和评估;任务(13)为对线路故障进行诊断、评估和处理;任务(14)为对变压器故障进行诊断、评估和处理;任务(15)为对变压器故障进行诊断和评估,对主变失压情况进行处理;任务(16)为对母线故障进行诊断和评估,并对故障跳闸线路进行强送;任务(17)为对线路故障进行诊断和评估,并定位故障线路的下级厂站;任务(18)为对开关故障进行诊断和评估,并定位故障线路的下级厂站;任务(19)为对母线故障进行诊断和评估,并查询事故处理业务的处理情况;任务(20)为对母线故障进行诊断和评估,并记录评估结果;任务(21)为对停电计划单进行解析,获取实时拓扑数据和网架数据,根据不同停电计划的关联程度,对所有停电计划单进行关联分组;任务(22)为对母线故障进行诊断和评估,并定位故障线路的下级厂站;任务(23)为根据量测数据对故障进行处理,并记录处理结果;任务(24)为对线路故障进行诊断和评估,并记录评估结果;任务(25)为校核停电计划单是否会导致电网拓扑变位冲突,并根据校核通过的停电计划单生成操作票;任务(26)为根据次日负荷预测数据对负荷潮流进行校核,并根据校核通过的停电计划单生成操作票。其中,任务(1)-(11)为独立任务,任务(12)-(26)为工作流,上述任务中每一个节点的具体含义如表2所示。
表1 各服务含义
表2 图3任务中各节点含义
任务到达率是指每秒任务到达的平均个数,反映出任务到来的密集程度。在本发明的其中一些实施例中,以三个不同任务到达率的案例为例。
案例一:任务到达率为0.96
案例一经过本发明所提调度器系统的调度后,绘制出服务B的三个实例的资源使用时序图,如图4~6所示。需要注意的是,在服务B的三个实例中,MSB,1和MSB,2是非备用实例,MSB,3是备用实例。由于篇幅限制,图中只展示0~200s的任务分配情况。其中,每个时序图都包含四个子图,分别表示CPU、内存、磁盘IO、网络带宽四类资源的使用情况。每个子图的横轴表示时间,纵轴表示资源量,其最大刻度为服务实例的资源限值。
子图中的每个矩形表示一个任务的处理过程,矩形的长度表示任务的处理时间,宽度表示资源使用量,相邻的矩形采用不同颜色进行标识。为便于看出服务实例的资源使用情况,一个矩形可能被拆分为多个矩形,例如图4中的t59。在这种表示方法下,图中空白区域表示服务实例的剩余资源量。
下面基于图4~6来分析任务分配组件的三种机制——正常分配、资源预留、抢占式调度。
任务接收组件在19.41秒接收到工作流wf2,将工作流wf2发送给工作流预处理组件,工作流预处理组件对其进行预处理后,将根节点任务wf2-A_1存入任务队列。在30.96秒时,任务完成情况监控组件接收到wf2-A_1的完成信息,并通知任务分配组件和工作流预处理组件,工作流预处理组件将wf2-A_1的所有后继任务中处于就绪状态的任务wf2-B_2存入任务队列。在正常分配过程中,任务分配组件根据负载均衡原则将任务尽可能均匀地分配给非备用实例处理,其中每一次分配都需要满足服务实例资源约束与物理机资源约束,资源信息由资源信息监控组件实时监控得到。例如,任务wf2-B_2在30.96秒被存入任务队列,其主导资源是内存,到31.44s时任务wf2-B_2成为任务队列中效用值最高的任务,任务分配组件对其进行分配,由于该时刻非备用实例MSB,2的剩余内存比非备用实例MSB,1多,且非备用实例MSB,2的其他资源都可以满足任务wf2-B_2的需求,因此任务分配组件将wf2-B_2分配给MSB,2处理。备用实例主要用于缓解非备用实例在负载高峰期的压力,只有在非备用实例的资源占用率都很高而无法处理紧急任务时,紧急任务才会被分配给备用实例处理。例如,在125.00秒时,非备用实例MSB,1和MSB,2的资源占用率都较高,而备用实例MSB,3处于空闲状态。非备用实例MSB,1和MSB,2在大部分时间的资源使用量都比较接近,且都高于备用实例MSB,3的资源使用量,说明负载在非备用实例间的分配较为均衡。
服务B的两个非备用实例MSB,1和MSB,2的任务预留情况如图7所示。以任务t59为例介绍资源预留过程。任务接收组件在132.70秒接收到t59,将其存入任务队列,从图4和图5可以看出,此时非备用实例MSB,1和非备用实例MSB,2的剩余CPU都无法满足该任务的需求。由于任务t59是普通任务,任务分配组件将其存入等待队列,并根据非备用实例MSB,1和非备用实例MSB,2中正在处理的任务情况,预估非备用实例MSB,1在更短时间内能够满足该任务的资源需求,因此将非备用实例MSB,1预留给任务t59。从132.70秒到137.30秒,非备用实例MSB,1被预留给任务t59,其他任务不能被分配给非备用实例MSB,1处理。在137.30秒时,非备用实例MSB,1的剩余资源可以满足任务t59的需求,因此将该任务分配给非备用实例MSB,1处理。
在抢占式调度过程中,任务分配组件需要终止一些普通任务,以保证紧急任务能够按时完成。由于本案例的任务到达率较低,服务实例的资源可以满足所有任务的需求,因此不存在抢占式调度的情况。
将本发明调度器系统的调度结果与现有三种算法的结果进行比较,并用重要任务的按时完成比例和平均等待时间来衡量本发明所提调度器系统的合理性和效率,其中,现有三种算法分别为先来先服务算法(FCFS)、最早截止时间优先算法(EDF)、最小松弛度优先算法(LLF)。
重要任务的按时完成比例是指重要任务按时完成比例的数量所占总重要任务数量的比例,在电力系统调控软件中,重要任务的延时完成将可能对工业场景造成经济损失,甚至人员伤亡事故。重要任务的平均等待时间则是所有重要任务等待时间的平均值。
案例一各算法对比如表3所示,采用本发明提供的调度器系统进行调度时的重要任务按时完成比例为100%,体现出调度的合理性。另外,在重要任务平均等待时间方面,采用本发明提供的调度器系统进行调度时仅需0.249秒,远远低于其他三种算法的等待时间,体现出本发明对重要任务的调度效率。
表3 案例一各算法对比
本发明所提方法 | FCFS | EDF | LLF | |
重要任务按时完成比例 | 100% | 100% | 100% | 100% |
重要任务平均等待时间 | 0.249秒 | 1.098秒 | 0.527秒 | 0.622秒 |
案例二:任务到达率为1.57
案例二经过本发明所提调度器系统的调度后,绘制出服务B的三个实例的资源使用时序图,如图8~10所示。下面基于图8~10来分析任务分配组件的三种机制——正常分配、资源预留、抢占式调度。
在正常分配过程中,任务分配组件根据负载均衡原则将任务尽可能均匀地分配给非备用实例处理。例如,任务接收组件在14.32秒接收到任务t12,将其存入任务队列中,其主导资源是内存,到20.08秒时任务t12成为任务队列中效用值最高的任务,任务分配组件对其进行分配,由于该时刻非备用实例MSB,1的剩余内存比非备用实例MSB,2多,且非备用实例MSB,1的其他资源都可以满足任务t12的需求,因此任务分配组件将任务t12分配给非备用实例MSB,1处理。备用实例主要用于缓解非备用实例在负载高峰期的压力,只有在非备用实例的资源占用率都很高而无法处理紧急任务时,紧急任务才会被分配给备用实例处理。例如,在175.00秒时,非备用实例MSB,1和MSB,2的资源占用率都较高,而备用实例MSB,3处于空闲状态。非备用实例MSB,1和MSB,2在大部分时间的资源使用量都比较接近,且都高于备用实例MSB,3的资源使用量,说明负载在非备用实例间的分配较为均衡。
服务B的两个非备用实例MSB,1和MSB,2的任务预留情况如图11所示。以任务t103为例介绍资源预留过程。任务接收组件在148.64秒接收到t103,将其存入任务队列,从图8和图9可以看出,此时非备用实例MSB,1和MSB,2的剩余CPU都无法满足该任务的需求。由于任务t103是普通任务,任务分配组件将其存入等待队列,并根据非备用实例MSB,1和MSB,2中正在处理的任务情况,预估非备用实例MSB,1在更短时间内能够满足该任务的资源需求,因此将非备用实例MSB,1预留给任务t103。从148.64秒到152.67秒,非备用实例MSB,1被预留给任务t103,其他任务不能被分配给非备用实例MSB,1处理。在152.67秒时,非备用实例MSB,1的剩余资源可以满足任务t103的需求,因此将该任务分配给非备用实例MSB,1处理。
在抢占式调度过程中,任务分配组件需要终止一些普通任务,以保证紧急任务能够按时完成。在图8和图9中,虚线框表示被终止的任务。例如,紧急任务wf13-B_1在58.96秒到来,此时服务B的3个实例的资源使用量都很高,剩余资源无法满足该任务的需求,因此任务分配组件在59.90秒终止了非备用实例MSB,1对普通任务t31的处理,并将任务wf13-B_1分配给非备用实例MSB,1处理。同理,任务分配组件在48.96秒终止了非备用实例MSB,2对普通任务t29的处理,并将任务wf9-B_1分配给MSB,2处理。
案例二各算法对比如表4所示,采用本发明提供的调度器系统进行调度时的重要任务按时完成比例为95.52%,比其他三种算法提高了至少58.21%,体现出调度的合理性。另外,在重要任务平均等待时间方面,采用本发明提供的调度器系统进行调度时仅需1.935秒,比其他三种算法的等待时间至少降低13.888秒,调度效率远远高于现有算法。
表4 案例二各算法对比
本发明所提方法 | FCFS | EDF | LLF | |
重要任务按时完成比例 | 95.52% | 34.33% | 37.31% | 29.85% |
重要任务平均等待时间 | 1.935秒 | 19.892秒 | 18.299秒 | 15.823秒 |
案例三:任务到达率为1.78
案例三经过本发明所提调度器系统的调度后,绘制出服务B的三个实例的资源使用时序图,如图12~14所示。下面基于图12~14来分析任务分配组件的三种机制——正常分配、资源预留、抢占式调度。
在正常分配过程中,任务分配组件根据负载均衡原则将任务尽可能均匀地分配给非备用实例处理。例如,任务接收组件在5.15秒接收到任务t8,将其存入任务队列,其主导资源是CPU,到10.90秒时任务t8成为任务队列中效用值最高的任务,任务分配组件对其进行分配,由于该时刻非备用实例MSB,1的剩余CPU比非备用实例MSB,2多,且非备用实例MSB,1的其他资源都可以满足任务t8的需求,因此任务分配组件将任务t8分配给非备用实例MSB,1处理。备用实例主要用于缓解非备用实例在负载高峰期的压力,只有在非备用实例的资源占用率都很高而无法处理紧急任务时,紧急任务才会被分配给备用实例处理。例如,在125.00秒时,非备用实例MSB,1和MSB,2的资源占用率都较高,而备用实例MSB,3处于空闲状态。非备用实例MSB,1和MSB,2在大部分时间的资源使用量都比较接近,且都高于备用实例MSB,3的资源使用量,说明负载在非备用实例间的分配较为均衡。
服务B的两个非备用实例MSB,1和MSB,2的任务预留情况如图15所示。以任务t18为例介绍资源预留过程。任务接收组件在28.64秒接收到任务t18,将其存入任务队列,从图12和图13可以看出,此时非备用实例MSB,1和MSB,2的剩余内存都无法满足该任务的需求。由于任务t18是普通任务,任务分配组件将其存入等待队列,并根据非备用实例MSB,1和MSB,2中正在处理的任务情况,预估非备用实例MSB,1在更短时间内能够满足该任务的资源需求,因此将非备用实例MSB,1预留给任务t18。从28.64秒到32.70秒,非备用实例MSB,1被预留给任务t18,其他任务不能被分配给非备用实例MSB,1处理。在32.70秒时,非备用实例MSB,1的剩余资源可以满足任务t18的需求,因此将该任务分配给非备用实例MSB,1处理。
在抢占式调度过程中,任务分配组件需要终止一些普通任务,以保证紧急任务能够按时完成。在图12和图13中,虚线框表示被终止的任务。例如,紧急任务wf28-B_4在139.23秒到来,此时服务B的3个实例的资源使用量都很高,剩余资源无法满足该任务的需求,因此任务分配组件在148.69秒终止了非备用实例MSB,1对普通任务t111的处理,并将任务wf28-B_4分配给非备用实例MSB,1处理。同理,任务分配在83.06秒终止了非备用实例MSB,2对普通任务t61的处理,并将任务wf13-B_4分配给非备用实例MSB,2处理。
案例三各算法对比如表5所示,采用本发明提供的调度器系统进行调度时的重要任务按时完成比例为79.38%,比其他三种算法提高了至少40.2%,体现出调度的合理性。另外,在重要任务平均等待时间方面,采用本发明提供的调度器系统进行调度时仅需3.26秒,比其他三种算法的等待时间至少降低21.476秒,调度效率远远高于现有算法。
表5 案例三各算法对比
本发明所提方法 | FCFS | EDF | LLF | |
重要任务按时完成比例 | 79.38% | 34.02% | 39.18% | 24.74% |
重要任务平均等待时间 | 3.26秒 | 25.192秒 | 25.376秒 | 24.736秒 |
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本发明中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本发明所示的这些实施例,而是要符合与本发明所公开的原理和新颖特点相一致的最宽的范围。
Claims (17)
1.一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述调度器系统包括9个组件,包括:
任务接收组件,用于接收来自外界的任务,并对任务类型进行判断,如果任务是独立任务,则对该独立任务进行效用值计算,然后把该独立任务存储到任务队列中;如果任务是工作流,则把该工作流发送到工作流预处理组件;其中,效用值反映了任务的重要程度;
工作流预处理组件,用于先对工作流进行预处理,得到工作流任务,然后对这些工作流任务进行效用值计算,并把所述工作流任务存储到任务队列中;
任务队列更新组件,用于对任务队列中的任务定期进行效用值更新和排序;
等待队列更新组件,用于定期对等待队列中暂时没有足够资源去处理的任务进行紧急任务检查以及效用值更新和排序;所述资源包括CPU、内存、磁盘I/O、网络带宽四类资源;
任务完成情况监控组件,用于监控服务实例中的任务是否完成,如有任务完成则将任务完成信息通知给任务分配组件以及工作流预处理组件,其中,每个服务实例需要并行处理多个任务;
任务处理时长监控组件,用于监控服务实例中任务处理的时长,并实时通知任务分配组件;
资源信息监控组件,用于监控服务实例及物理机的资源使用情况,并实时通知任务分配组件;
任务分配组件,用于对任务队列和等待队列中的任务进行调度,并把任务发送到部署在物理机上的服务实例处理;
权重在线更新组件,用于依据任务队列、等待队列、服务实例中的任务截止情况,对效用函数的权重进行定期在线学习与更新。
2.根据权利要求1所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,任务接收组件中所述独立任务为只需要调用一个服务即可完成处理的任务,所述独立任务的属性包括到达时间、截止时间和固有重要程度;所述工作流为需要先后调用多个服务才能完成处理的任务,所述工作流的属性包括到达时间、截止时间、固有重要程度和拓扑结构四个属性;所述任务队列为用于存储待分配任务的队列。
3.根据权利要求1所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,任务接收组件中,所述效用值计算是指依据效用函数对任务的重要程度进行计算。
5.根据权利要求4所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述固有重要程度是任务的一种固定属性,任务越重要,说明越需要被尽快完成;所述松弛度是指任务在满足截止时间的条件下可以延迟处理的最大时间;所述是否处于关键路径是指工作流任务是否处于该工作流的关键路径上,体现为该工作流任务可能成为影响整个工作流完成时间的瓶颈。
6.根据权利要求1所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,工作流预处理组件中,所述预处理包括两个过程,第一个过程是接收到新工作流的预处理过程,第二个过程是接收到工作流任务完成信息的预处理过程。
7.根据权利要求6所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述接收到新工作流的预处理过程为,如果接收到新的工作流,则计算该工作流中所有工作流任务的截止时间以及该工作流中所有根节点任务的效用值,然后将所有根节点任务存入任务队列。
8.根据权利要求6所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述接收到工作流任务完成信息的预处理过程为,如果接收到任务完成情况监控组件发送的工作流任务的完成信息,则查询该工作流任务所有后继任务是否处于就绪状态,其中就绪状态是指该工作流任务的所有前驱任务是否都已完成,如果是则计算该工作流任务的效用值并存入任务队列。
9.根据权利要求1所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,等待队列更新组件中,所述等待队列是指用于存储当前所有服务实例都没有足够资源去处理的任务的队列;所述紧急任务检查是指依次检查等待队列中是否有紧急任务,其中紧急任务是指固有重要程度为5或即将错过截止时间的任务。
10.根据权利要求1所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,任务分配组件采用任务分配机制、资源预留机制和抢占式调度机制中的任一种或多种机制来对任务进行调度。
11.根据权利要求10所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述任务分配机制用于对任务队列中的任务进行分配,并规定了四个原则,第一个原则是普通任务只能分配给非备用实例,而紧急任务可以分配给非备用实例和备用实例;第二个原则是非备用实例需要进行负载均衡,而备用实例不需要进行负载均衡,其中负载均衡是指不同服务实例的各种资源使用相对平衡,防止由于某些服务实例负载过高而导致任务总体吞吐量下降的情况;第三个原则是在分配任务时,需要满足资源约束;第四个原则是在把任务分配给非备用实例处理时,需要将任务分配给当前主导资源剩余最多的服务实例处理,通过计算任务所需CPU、内存、磁盘I/O、网络带宽与服务实例中对应资源占比,主导资源是指其中占比最高的资源。
12.根据权利要求11所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述资源约束包括服务实例资源约束和物理机资源约束;所述服务实例资源约束是指当服务实例的剩余资源能满足该任务的资源需求;所述物理机资源约束是指当物理机的剩余资源能满足该任务的资源需求。
13.根据权利要求10所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述资源预留机制需要满足的具体实施过程为:如果当前效用值最高的任务没有足够的资源被处理,则把该任务优先预留给某一非备用实例,被预留的实例的资源被锁定,不能用于处理除预留任务以外的其他任务,直到该预留任务被分配出去。
14.根据权利要求10所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述抢占式调度机制的具体实施过程为,当所有服务实例的资源都不能满足紧急任务的处理需求时,调度器将进行抢占式调度——终止某个非备用实例对一些普通任务的处理过程,抢占这些普通任务所占用的资源,使该紧急任务能被分配给该非备用实例处理。
15.根据权利要求1所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述权重在线更新组件的更新目标为效用函数的权重,输入为任务队列、等待队列、服务实例中的任务信息,其输出为效用函数的权重,在进行权重在线学习后,权重在线更新组件将把学习后的权重更新到权重库中。
16.根据权利要求1-15任一项所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,权重在线更新组件中,所述在线学习与更新方法包括三步,第一步,权重在线更新组件读取任务队列、等待队列、服务实例中的任务信息,并依据判断规则判断该组权重的调度效果,如果调度效果好,则保持使用该组权重,如果调度效果不好,则选择其他权重;第二步,权重在线更新组件选择其他权重,并在线更新到权重库中,调度器系统将使用更新后的权重进行调度;第三步,权重在线更新组件等待一段时间后,由第一步开始继续循环更新权重。
17.根据权利要求16所述的一种考虑任务重要程度动态变化的调度器系统,其特征在于,所述判断规则为依据任务截止的数量来判断调度效果,如果任务截止的数量超过所设定的阈值,则调度效果较差,否则调度效果较好。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211590696.9A CN115599557B (zh) | 2022-12-12 | 2022-12-12 | 一种考虑任务重要程度动态变化的调度器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211590696.9A CN115599557B (zh) | 2022-12-12 | 2022-12-12 | 一种考虑任务重要程度动态变化的调度器系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115599557A true CN115599557A (zh) | 2023-01-13 |
CN115599557B CN115599557B (zh) | 2023-05-23 |
Family
ID=84852816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211590696.9A Active CN115599557B (zh) | 2022-12-12 | 2022-12-12 | 一种考虑任务重要程度动态变化的调度器系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599557B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495758A (zh) * | 2011-12-05 | 2012-06-13 | 中南大学 | 分布式高性能计算环境中实时任务的调度方法 |
CN114579282A (zh) * | 2022-03-15 | 2022-06-03 | 中国科学院微电子研究所 | 一种任务调度方法及装置 |
CN115033357A (zh) * | 2022-05-17 | 2022-09-09 | 南京邮电大学 | 基于动态资源选择策略的微服务工作流调度方法及装置 |
-
2022
- 2022-12-12 CN CN202211590696.9A patent/CN115599557B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495758A (zh) * | 2011-12-05 | 2012-06-13 | 中南大学 | 分布式高性能计算环境中实时任务的调度方法 |
CN114579282A (zh) * | 2022-03-15 | 2022-06-03 | 中国科学院微电子研究所 | 一种任务调度方法及装置 |
CN115033357A (zh) * | 2022-05-17 | 2022-09-09 | 南京邮电大学 | 基于动态资源选择策略的微服务工作流调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
宁明超等: ""适用于基于面向服务架构的工业软件的任务调度算法"", 《计算机应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115599557B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720403B2 (en) | System for commitment-aware workload scheduling based on anticipated resource consumption levels | |
CN111381950B (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
US20070247657A1 (en) | Print job management system | |
US20120331476A1 (en) | Method and system for reactive scheduling | |
CN109471705A (zh) | 任务调度的方法、设备及系统、计算机设备 | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及系统 | |
CN103838627B (zh) | 一种基于工作流吞吐量最大化的工作流调度方法 | |
CN108965014A (zh) | QoS感知的服务链备份方法及系统 | |
CN109861850B (zh) | 一种基于sla的无状态云工作流负载均衡调度的方法 | |
CN104239154B (zh) | 一种Hadoop集群中的作业调度方法和作业调度器 | |
CN106775932B (zh) | 一种云计算系统中随机事件触发的实时工作流调度方法 | |
CN110187956B (zh) | 一种多智能体平台的分层实时任务调度方法和系统 | |
CN113138860B (zh) | 消息队列的管理方法及装置 | |
CN110308967A (zh) | 一种基于混合云的工作流成本-延迟最优化任务分配方法 | |
Mastelic et al. | Predicting resource allocation and costs for business processes in the cloud | |
CN111026519A (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
CN110262897A (zh) | 一种基于负载预测的Hadoop计算任务初始分配方法 | |
CN106201681B (zh) | Hadoop平台下基于预释放资源列表的任务调度方法 | |
CN108509280A (zh) | 一种基于推送模型的分布式计算集群本地性调度方法 | |
CN109992418A (zh) | Sla感知的多租户大数据平台资源优先级调度方法及系统 | |
CN110196773B (zh) | 统一调度计算资源的多时间尺度安全校核系统及方法 | |
CN115033357A (zh) | 基于动态资源选择策略的微服务工作流调度方法及装置 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
Singh et al. | A comparative study of various scheduling algorithms in cloud computing | |
CN115599557B (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 |